如何根据文本框的焦点按Enter键来触发按钮单击事件?

我有一个带有几个提交按钮的表单。 我想根据当前具有焦点的文本框按下输入时触发按钮的单击事件。 通过将onkeydown事件添加到页面主体并检查Enter的keyCode,我可以使用下面的代码指定一个按钮

 ...  

我假设可以修改此代码或调用函数来执行条件以查看txtSearch或txtSubmit是否具有焦点并相应地指定btnSearch或btnSubmit,但我对javascript没有经验。

任何帮助/建议都会很棒!

您可以使用asp:Panel控件来帮助您。 asp:Panel具有“DefaultButton”,您可以在其中指定按钮的ID。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

它可能不是您所需要的,但它总是足以满足我的需求。

      ....   

希望这对你有所帮助。

问候

第一个问题可能只是一个错字,但你需要添加一个引号并删除上面代码中的分号。

  ...  

但我认为捕捉全球击键事件并不是最好的选择。 我会将onkeydown添加到实际的表单控件中,这样你就不会只是拿起每一个输入。 此外,您可以在事件处理程序方法中指定调用一个参数,该参数指示正在使用的文本框。

  

然后你只需编写处理所有键捕获事件的方法:

 function KeyDownEventHandler(e, box) { var charCode = (e.which) ? e.which : event.keyCode if(charCode==13) document.getElementById('btnSearch' + box).click(); } 

我更改了键码检测以更好地与其他浏览器一起使用。

我终于得到了我追求的结果。 我需要使用一个函数来停止触发默认的“输入”按钮,并使用另一个函数来触发正确的按钮的单击事件。 这是使用的脚本:

  

我从body的onkeydown事件调用了DisableEnterKey函数,从文本框的onkeydown事件调用了KeyDownEventHandler:

  ...  ...  ...