JQuery验证器插件传递数据

时间:2015-06-05 12:15:27

标签: javascript jquery

我有一个表单,其中应用了JQuery验证器。我不会发布所有内容,但代码如下所示

var validator = $("#my_form").validate({
    errorPlacement: function(error, element) {
        $( element )
            .closest( "form" )
                .find( "#error" )
                    .append( error );
    },
    rules: {
        emailAddress: {
          require_from_group: [1, '.datagroup'],
          email: true,
          maxlength: 40
        },
        mobileNumber: {
            require_from_group: [1, '.datagroup'],
            number:true,
            minlength: 8
        }
    },
    messages: {
        emailAddress: {
            maxlength: jQuery.validator.format("shorter")
        },
        mobileNumber: {
            number: jQuery.validator.format("Please enter a number"),
            minlength: jQuery.validator.format("Please enter a valid number")
        }
    },
    groups: {
        datagroup: "emailAddress mobileNumber"
    },
    submitHandler: function (form) {
         $.ajax({
             type: "POST",
             url: "php/main.php",
             data: $(form).serialize()
         })
         .done(function (response) {
             $('#results').html(response)
        });
         return false;
     }
});

问题是提交处理程序是整个表单传递的,然后将这些数据序列化并发送到main.php。但是,我不再需要它提交mobileNumber的格式。原因是我现在正在使用一个插件来为我格式化这个数字,并获得这个值,我需要做

var mobileNumber = $("#mobileNumber").intlTelInput("getNumber");

我也可以使用val()抓取电子邮件,这样也可以将其分配给变量。那么如何将main.php传递给变量mobileNumber和emailAddress?

由于

1 个答案:

答案 0 :(得分:1)

您可以通过手动构建如下所示的数据对象来实现。

$.ajax({
    type: "POST",
    url: "php/main.php",
    data: {
        'emailAddress': $("#mobileNumber").intlTelInput("getNumber"),
        'mobileNumber': $("selector").val()
    }
})