jQuery:在提交之前验证

时间:2010-11-23 12:27:20

标签: jquery jquery-validate form-submit

我正在尝试在提交之前验证我的表单。我正在尝试使用下面的代码,但它始终提交表单值:

$('#gestione_profilo').submit(function () {

    $("#gestione_profilo").validate({

        rules: {

            'person_data[document_number]': "required"

        },

        messages: {

            'person_data[document_number]': "required"

        }

    });


    form_data = $(this).serialize();

    $.ajax({

        url: "<?php echo url_for('profile/index') ?>",
        type: "POST",
        data: form_data,
        success: function() { $("#forma_profile").unmask(); }

        });

        $("#forma_profile").mask("Aggiornando dati...");

        return false;

    });

任何帮助?

此致

哈维尔

1 个答案:

答案 0 :(得分:3)

您需要在document.ready处理程序中调用.validate(),因为设置验证(以及已在此处运行的submit事件)它不会't 运行验证。它应该是这样的:

$(function() {
  $("#gestione_profilo").validate({
    rules: {
        'person_data[document_number]': "required"
    },
    messages: {
        'person_data[document_number]': "required"
    },
    submitHandler: function(form){
      $.post("<?php echo url_for('profile/index') ?>", $(form).serialize(), 
        function() { 
          $("#forma_profile").unmask();
      });
      $("#forma_profile").mask("Aggiornando dati...");
    }
  });
});

这涉及在表单上添加 no .submit()处理程序(.validate()在下面执行此操作),而是使用仅在表单运行时运行的submitHandler option有效的,invalidHandler是它的对应物,它在表单无效时运行。