jQuery验证+通过$ .post提交

时间:2012-05-29 09:26:31

标签: javascript jquery html

您好!

我的问题是关注

验证插件对我来说很好,除了我不希望表单在它仍然无效时提交。

事实是,它会验证并显示错误,但即使它无效也会提交。

<小时/> 的验证

$("form#form-utilizadores").validate({
  rules:{
    nome:{
      required:true
    },
    utilizador:{
      required:true
    },
    password:{
      required:true
    },
    tipo:{
      required:true
    }
  }
});

<小时/> 提交

$('form#form-utilizadores').submit(function(e){
    e.preventDefault();
    var data = $(this).serialize();
    $.post('submit/submit-utilizadores.php',data,function(data){
      alert((data=='sucesso') ? 'Adicionado com sucesso!' : data);
      top.location.reload();
    }
  );
});

感谢您花时间帮助我! :)

3 个答案:

答案 0 :(得分:2)

您应该将您拥有的代码放在$('form#form-utilizadores').submit()中并将其放在jQuery验证设置的submitHandler参数中,试试这个:

$("form#form-utilizadores").validate({
    rules: {
        // your current rules...
    },
    submitHandler: function(form) {
        var data = $(form).serialize();
        $.post(    
            'submit/submit-utilizadores.php',
            data,
            function(data) {
                alert((data=='sucesso') ? 'Adicionado com sucesso!' : data);
                top.location.reload();
            }
        );
    }
});

始终提交当前代码的原因是,无论表单是否有效,始终会引发表单submit事件。通过submitHandler让jQuery验证控制是否发布表单,具体取决于它的有效性。

答案 1 :(得分:2)

尝试在提交处理程序中添加此代码:

$('form#form-utilizadores').submit(function(e){
    e.preventDefault();
    if($(this).valid() == false){
        return;
    }
    .
    .
    .

答案 2 :(得分:1)

如果您的验证失败,则从提交中返回false。