我有一个 Web 应用程序,在一个特定的屏幕上,我必须确保用户使用鼠标单击按钮,而不是仅按 Enter 或空格键。
我写了这段代码:
$('button').keydown(function (e) {
if (e.which === 10 || e.which === 13 || e.which === 32) {
return false;
}
});
但是,这仅适用于 Enter。仍然可以通过按按钮上的空格来提交表单。我只是想知道是什么导致了这种不一致以及如何解决它?
编辑:
fiddle 示例:http://jsfiddle.net/billccn/3JmtY/1/ 。选中第二个复选框并在焦点位于按钮上时按 Enter 键将不会产生任何效果。如果我进一步禁用输入并将 keydown 捕获扩展到整个表单,则无法使用 Enter 来提交表单。
编辑2:
我确实有一个备份计划,用链接甚至普通 div 替换按钮,并使用单击事件以编程方式提交表单。但是,需要额外的工作才能使其看起来像一个按钮,因此我宁愿使用按钮。
最佳答案
刚刚发现:在 keyup
上处理空格 (32) 将阻止点击事件。
更新的 fiddle :http://jsfiddle.net/3JmtY/2/
关于javascript - 如何防止使用键盘(尤其是空格键)提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905236/