我有一个 web 应用程序,在一个特定的屏幕上,我必须确保用户使用鼠标单击按钮,而不是只按 enter 或空格。
我写了这段代码:
$('button').keydown(function (e) {
if (e.which === 10 || e.which === 13 || e.which === 32) {
return false;
}
});
但是,这仅适用于输入。仍然可以通过按按钮上的空格来提交表单。我只是想知道是什么导致了这种不一致以及如何解决它?
编辑:
小提琴示例:http: //jsfiddle.net/billccn/3JmtY/1/。选中第二个复选框并在焦点位于按钮上时按 Enter 将无效。如果我进一步禁用输入并将keydown捕获扩展到整个表单,则无法使用输入来提交表单。
编辑2:
我确实有一个备份计划,它用链接甚至普通 div 替换按钮,并使用点击事件以编程方式提交表单。但是,需要额外的工作才能使它看起来像一个按钮,所以我宁愿使用一个按钮是可能的。