如何根据文本框的焦点按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:
... ... ...