基本上我想通过按键盘上的F2来保存我的记录。使用按钮提交功能工作正常,但我无法使用此F2键盘功能复制它。触发F2键盘没有问题,但我认为问题依赖于我的代码。
这是触发键盘上的F2的JQuery:
$(document).keyup(function (e) {
var $this = $(this);
var key = (e.keyCode ? e.keyCode : e.charCode);
switch (key) {
case 113: //This will trigger the event once F2 on keyboard is press.
fncTrigger();
break;
default:;
}
});
这是触发点击事件的功能:
function fncTrigger() {
$('#btnSubmit').click();
}
这很好用。它将触发该功能并将触发提交事件。不幸的是,在这个点击事件中,仍有一个条件会在提交表单之前检查我的逻辑:
<button type="submit" id="btnSubmit" onclick="fncFormValidation(this);"> Submit</button>
function fncFormValidation(frm) {
var form = $('#frmCall');
var inpObj = document.getElementById("frmCall");
if (inpObj.checkValidity()) {
form.submit();
}
} else {
console.log('Please correct validation errors');
}
event.preventDefault();
}
}
如您所见,在需要提交表单之前,仍有一个需要检查的情况。
单击按钮时此功能正常,但当我按下键盘上的F2时,无论if-else的条件是否为真,它都会自动提交表单。 < / p>
我尝试使用event.preventDefault(),但是一旦按下键盘上的F2,它仍会提交表单。是否有一种方法可以遵循fncFormValidation中的条件并阻止在不满足条件时提交表单?