我正在一个ASP.NET MVC网站上有多个提交按钮。即:
<input type="submit" name="SubmitButton" value="Reset" /> <input type="submit" name="SubmitButton" value="OK" /> <input type="submit" name="SubmitButton" value="Back" />
我需要允许用户按“Enter”键快速提交表单。 HTML标准似乎指定如果用户按“Enter”键,将假定第一个提交按钮。但是,我需要将第二个按钮(即“OK”)按钮设置为默认按钮,并且由于我甚至不想谈论的原因,更改按钮顺序不是一个选项。
我搜索了几遍,我发现this post关于在ASP.NET中使用Page.Form.DefaultButton,但这并不适用于ASP.NET MVC。
我还尝试了以下javascript解决方案,而它在Chrome中可以工作,但在IE6中不起作用
$('body').keypress(function(e) { if (e.which === 13) { $("input[value='OK']").trigger('click'); } });
我可以想到一些真正极端的解决方案,例如通过每个单独的控件,将上述功能附加到他们的形式。但是,我不认为这是一个非常整洁的解决方案,所以我想知道谁有更好的解决方案?
解决方法
首先,这是错误的:
<input type="submit" name="SubmitButton" value="Reset" /> <input type="submit" name="SubmitButton" value="OK" /> <input type="submit" name="SubmitButton" value="Back" />
所有三个都提交按钮。复位是type =“reset”的输入。得到排序。其次,我已经成功实现了这样的功能,它适用于IE6。尝试这个:
function keypressHandler(e) { if(e.which == 13) { e.preventDefault(); //stops default action: submitting form $(this).blur(); $('#SubmitButton').focus().click();//give your submit an ID } } $('#myForm').keypress(keypressHandler);
focus()部分使用户按Enter键时按下按钮。相当漂亮
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。