查询OnSubmit问题

时间:2016-06-29 16:02:43

标签: javascript jquery forms validation umbraco

我遇到错误,使用下面的查询是代码的片段:

  $('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

3 个答案:

答案 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();
});

谢谢,

理查德