我的页面上有以下代码:
$('form.enter-doesnt-submit').submit(function () {
console.log($(document.activeElement));
if($(document.activeElement).attr('type') == 'submit') {
console.log
return true;
} else {
console.log("Prevented enter from submitting the form.");
return false;
}
});
我很确定我很久以前从stackoverflow得到了。它工作正常,只是在Safari中。原因是当我注销document.activeElement
时它会给我整个页面,因此当然属性类型不会提交,因此即使您单击提交按钮,表单也不会提交。
我需要能够阻止在我的表单上输入提交,因为它们是在线测试,并且如果用户正在写一个答案并且在表单完成之前意外按下输入,那么它们被标记错误,因为它们实际上没有完成测试。
任何人都可以通过某种方式帮助我防止在Safari上被压入吗?
好吧,我通过另一种方式来解决这个问题,而不是通过定位表单中的输入:
$('form.enter-doesnt-submit input[type=text]').keypress(function (e) {
if(e.keyCode == 13) {
e.preventDefault()
}
});
在textarea中按Enter不会默认提交表单,因此它只是需要阻止的输入。现在我的提交按钮适用于safari和chrome。