我遇到了一个错误,使用下面的查询是代码的片段:
$('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()方法被激发,一旦问题解决了,我就无法重新提交表单了?我见过一些人遇到这种情况,但他们的解决办法并没有解决我的问题。
UPDATE --这是我现在所拥有的,但是我仍然在收到这个问题,问题是当我试图重新提交时,当我试图重新提交时,提交按钮似乎被锁定了,有人遇到过这个问题吗?下面是我更新的代码:
//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);谢谢,
加维
发布于 2016-06-29 16:07:57
试着把它放在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();
}
});发布于 2016-06-29 16:08:31
我认为正确的方法是使用提交事件。如果您这样做,那么在验证失败时,您将preventDefault (就像您已经做的那样),而在成功时,您不会阻止默认设置。
没有什么可以阻止您对简单调用form.submit()的元素进行单击事件,但是您可能应该考虑使用一个可以自动提交的元素。
发布于 2016-07-01 09:44:16
为了解决我正在进行的问题,我们使用了不显着的验证,在一些示例的帮助下,我们能够创建or语句,并允许我们在表单上发布正确的验证。
$(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();
});谢谢,
理查德
https://stackoverflow.com/questions/38104771
复制相似问题