c# - 如果我添加第二个文本框,Javascript 将无法正常工作

标签 c# javascript asp.net textbox

请帮助我,如果用户在文本框中按 ENTER 键,我会尝试单击隐藏按钮。它适用于一个文本框,但如果我添加另一个文本框,java 脚本将不起作用。

文本框。 ---------------------------------------------- ----------------------------------------

  <pre> 
<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>

        <form id="form1" runat="server">
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="Button" 
                onclick="Button1_Click1" style="visibility: hidden; display: none;" />

    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
    <script type="text/javascript">

        var myInput = document.getElementById("TextBox1");
        if (myInput.addEventListener) {
            myInput.addEventListener('keydown', this.keyHandler, false);
        } else if (myInput.attachEvent) {
            myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */
        }

        function keyHandler(e) {
            var EnterKEY = 13;
            if (e.keyCode == EnterKEY) {

                if (e.preventDefault) {

                    document.getElementByID("Button1").click();
                    e.preventDefault();
                }
                return false;
            }
        }
    </script>

        &nbsp;
            <br />
            <asp:Label ID="Label1" runat="server" Visible="False"></asp:Label>
        </form>
    </body>
</pre>
    ------------------------------------------------------------------------------

    CODE BEHIND
            protected void Page_Load(object sender, EventArgs e)
            {

            }

            protected void Button1_Click1(object sender, EventArgs e)
            {
                    TextBox2.Text = "It Works";

            }
        }

最佳答案

尝试将您的 javascript 代码包装在 document.onload 函数中

window.document.onload = function(e){
var myInput = document.getElementById("TextBox1");
        if (myInput.addEventListener) {
            myInput.addEventListener('keydown', this.keyHandler, false);
        } else if (myInput.attachEvent) {
            myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */
        }

//adding the second textbox
myInput = document.getElementById("TextBox2");
            if (myInput.addEventListener) {
                myInput.addEventListener('keydown', this.keyHandler, false);
            } else if (myInput.attachEvent) {
                myInput.attachEvent('onkeydown', this.keyHandler); /* damn IE hack */
            }

        function keyHandler(e) {
            var EnterKEY = 13;
            if (e.keyCode == EnterKEY) {

                if (e.preventDefault) {

                    document.getElementByID("Button1").click();
                    e.preventDefault();
                }
                return false;
            }
        }
}

所以你的脚本在 DOM 树完全加载后执行

关于c# - 如果我添加第二个文本框,Javascript 将无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15937285/

相关文章:

c# - 解决 C# 利息问题,如何计算储蓄余额达到预期目标余额所需的年数?

c# - Ninject:将某物绑定(bind)到自身是什么意思?

javascript - spring mvc hibernate Restful(并发)问题

c# - FileUpload 在更新面板中不起作用

c# - 在数据库asp.net mvc中保存动态创建的控件数据

asp.net mvc 添加到 AUTHORIZE 属性

c# - 在 C# 中是否有更简单的方法来执行此 if 语句

c# - DelegatingHandler 应该如何进行异步调用(ASP.NET MVC Web API)?

javascript - 如何检测按键事件(ctrl+e)

javascript - 如何在 .html 页面上创建自定义图标而不是默认的 chrome 或资源管理器图标?