JavaScript: 按下回车键

3

早上好...

我在每个页面中使用JavaScript来触发文本框内的Enter键按下事件。这个功能运作良好。现在我想把代码放在.js文件中以便全局访问。

 function EnterKeyPress(id,e) {
       // look for window.event in case event isn't passed in
       if (window.event) { e = window.event; }
       if (e.keyCode == 13 || e.keyCode == 121) {

           window.document.getElementById('<%= ibtnSubmit.ClientID %>').click();
       } 
   }

我不想硬编码控件ID,有人可以帮帮我吗?
3个回答

9
您可以使用您的id参数而不是ControlID,当您在页面中使用此函数时,您可以将ControlID作为参数传递:
function EnterKeyPress(id,e) {
  if (window.event) { e = window.event; }
   if (e.keyCode == 13 || e.keyCode == 121) {
     document.getElementById(id).click();
   }
}

您正在使用ASP .NET,因此在您的代码后台中,您可以分配keypress事件:
TextBox1.Attributes.Add("onkeypress",
                      string.Format("EnterPressKey('{0}', event);", ibtnSubmit.ClientID));

但是,这个功能已经在ASP .NET上完成了,您可以使用ASP:Panel控件来包装您的常规控件,并且您可以为面板分配一个DefaultButton,以指示当Panel控件具有焦点并且用户按下Enter键时哪个按钮被点击。


0
如果您正在使用jQuery,可以像这样实现:
$("input[id*=ibtnSubmit]").click()

0
如果您希望在用户按下“Enter”键时提交表单,则不需要使用JavaScript。它会自动完成。只需将文本框放置在具有操作的表单元素中即可:
<form action="process.php">
  <input type="text">when the enter key is pressed, the form is submitted and sent to process.php</input>
</form>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接