3

早上好...

我在每个页面中使用 java 脚本来触发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。有人可以帮我吗..

4

3 回答 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

于 2009-08-05T05:36:41.610 回答
0

如果你使用 jQuery,你可以这样做:

$("input[id*=ibtnSubmit]").click()
于 2009-08-05T05:25:40.257 回答
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>
于 2009-08-05T05:29:02.747 回答