代码之家  ›  专栏  ›  技术社区  ›  tirenweb

jQuery:提交前验证

  •  0
  • tirenweb  · 技术社区  · 14 年前

    我正试图在提交表格之前验证我的表格。我正在尝试下面的代码,但它总是提交表单值:

    $('#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 回复  |  直到 14 年前
        1
  •  3
  •   Nick Craver    14 年前

    你需要打电话 .validate() 在你的 document.ready 处理程序,因为它 建立 验证(以及 submit 已经在这里运行的事件)它没有 运行 验证。应该是这样的:

    $(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...");
        }
      });
    });
    

    这涉及到 .submit() 在窗体本身上添加的处理程序( .validate() 是否在下面),而是使用 submitHandler option 只有当表单有效时才会运行, invalidHandler 是其对应项,当窗体无效时运行。