我遇到错误,使用下面的查询是代码的片段:
$('form[action="/home/service/"]').on("click", (function(event) {
if ($("#id1").val() == "" && $("#id2").val() == "") {
alert("Invalid entry");
event.preventDefault();
} else {
$('form[action="home/service/"]').submit();
}
});
event.preventDefault();尽管如此,它仍然可以提交。我尝试过使用.off(“点击”,功能);但这不起作用,也是同样的问题。
一旦触发了preventDefault()方法,我就无法在问题解决后重新提交表单?我见过一些人遇到过这个,但他们的修复并没有解决我的问题。
更新 这就是我现在所拥有的,但是我仍然收到问题,问题是它在提交时的初始化工作但是一旦我尝试重新提交值,看来提交按钮被锁定,有没有人遇到这个之前?以下是我更新的代码:
//function on
function checkForm(event)
{
debugger;
if ($("ID1, ID2" ).val() != "" ){
return;
}
else{
event.preventDefault();
$("#alerts-row").html("<div class='alert_box red'><p>Please Ensure that you have filled in at least one item number below!</p></div>");
$('form[action="Form"]').unbind("submit", checkForm);
}
}
$('form[action="form"]').on("submit", checkForm);
谢谢,
Gavey
答案 0 :(得分:0)
尝试将它放在if语句之前
$('form[action="/home/service/"]').on("click", (function(event) {
event.preventDefault();
if ($("#id1").val() == "" && $("#id2").val() == "") {
alert("Invalid entry");
} else {
$('form[action="home/service/"]').submit();
}
});
答案 1 :(得分:0)
我认为正确的方法是使用Submit事件。如果你这样做,那么如果你没有验证你就会阻止默认(正如你所做的那样),并且在成功时你不会阻止默认。
没有什么可以阻止你在一个简单调用form.submit()的元素上发生click事件,但你应该考虑使用&lt; Button&gt;相反,它可以自动提交。
答案 2 :(得分:0)
为了解决我遇到的问题,我们使用了不引人注目的验证,在一些示例的帮助下,我们能够创建或声明,并允许我们在表单上发布正确的验证。
$(document).ready(function(){
// Register new validation adapter
$.validator.unobtrusive.adapters.addBool('minimumselect');
// Add validator to controls
$input = $("#Input1");
$input.attr('data-val', 'true');
$input.attr('data-val-minimumselect', 'Please provide either this or Number 2');
$input2 = $("Input2");
$input2.attr('data-val', 'true');
$input2.attr('data-val-minimumselect', 'please provide this or Ref Number 1');
// Refresh form - needed to pick up new validator
refreshFormValidators();
});
谢谢,
理查德