Javascript 是否可以为具有不同POST数据的两个表单声明一个jQuery验证?

Javascript 是否可以为具有不同POST数据的两个表单声明一个jQuery验证?,javascript,jquery,Javascript,Jquery,我已经将我的jQuery-Validate代码组合为两种类似的表单 $("#formregister,#updateform").validate({ rules: { captcha: { required: true, remote: { url: "application/modules/customer_account/captcha/check.php", type: "post" } },

我已经将我的
jQuery-Validate
代码组合为两种类似的表单

$("#formregister,#updateform").validate({

  rules: {
    captcha: {
      required: true,
      remote: {
        url: "application/modules/customer_account/captcha/check.php",
        type: "post"
      }
    },

    //emails
    email: {
      required: true,
      email: true,
      minlength: 2,
      remote: {
        url: "checkemail.php", // temp -  this should be module/controller/function
        type: "post",
        data: {
          email: function() {
            return $('#formregister:input[name="email"],#updateform:input[name="email"]').val();
          }
        }
      }
    },
    //passwords
    user_password: {
      required: true,
      minlength: 6
    },
    repassword: {
      required: true,
      minlength: 6,
      equalTo: "#user_password"
    },
    // billing
    bill_company_name: {
      required: true
    },
    bill_first_name: {
      required: true
    },
    bill_last_name: {
      required: true
    },
    bill_address: {
      required: true
    },
    bill_city: {
      required: true
    },
    bill_state: {
      required: true
    },
    bill_zip_code: {
      required: true
    },
    bill_country: {
      required: true
    },
    bill_phone: {
      required: true
    },
    ship_company_name: {
      required: true
    },
    ship_first_name: {
      required: true
    },
    ship_last_name: {
      required: true
    },
    ship_address: {
      required: true
    },
    ship_city: {
      required: true
    },
    ship_state: {
      required: true
    },
    ship_zip_code: {
      required: true
    },
    ship_country: {
      required: true
    },
    ship_phone: {
      required: true
    },
    businessType: {
      required: true
    },
    businessValue: {
      required: true
    },
    businessLicense: {
      required: true
    },
    aboutUsHear: {
      required: true
    },
    aboutUsValue: {
      required: true
    }

  },


  // messages
  messages: {
    captcha: {
      required: "Enter the characters as seen on the image above.",
      remote: $.format("Please provide Correct captcha!")
    },
    email: {
      required: "Please enter valid email address",
      minlength: $.format("Enter at least {0} characters"),
      remote: $.format("{0} is already registered!")
    },
    password: {
      required: "Please Provide a password",
      rangelength: $.format("Enter at least {0} characters")
    },
    repassword: {
      required: "Repeat your password",
      minlength: $.format("Enter at least {0} characters"),
      equalTo: "Enter the same password as above"
    }
  },

  //on form submitting
  submitHandler: function(form) { // for demo
    form.submit();
  },
  // field messages
  success: function(label) {
    var name = label.attr('for');
    var messages = new Array(
      "Looks good1!",
      "You got it1!",
      "is Ok1!");
    var num = Math.floor(Math.random() * 3);

    label.text(name + ' ' + messages[num]).addClass("valid");
    label.select(name + ' ' + messages[num]).addClass("valid");

  }
});

如您所见,有两种表单,
#formregister
#updateform
。对于
#formregister
我只需要
电子邮件
发布数据,而对于
#updateform
我需要
电子邮件
uid
发布数据,这些数据在此代码中未显示。当我试图提交每个表单时,POST数据是未定义的,这是为什么?我连接它的方式有问题吗?有没有一种方法我仍然可以遵循这些单一的验证初始化,并且不会给出未定义的post数据?谢谢。

我不知道这个解决方案是否适用于所有人,但请注意我的
jQuery Validate

   data: {
      email: function() {
        return $('#formregister:input[name="email"],#updateform:input[name="email"]').val();
      }
    }

请注意,表单ID和它需要查找的元素甚至没有被一个
空格隔开。我编辑了我的表格,我想这是一次幸运的编辑,它成功了。我不明白的是,为什么只有
空间
对这个场景很重要。不管怎样,这就解决了问题。谢谢大家。

@nbanic如果不知道表单的外观以及它们如何共享输入,就无法帮助您。请同时粘贴表单。@r.piesnikowski我只是编辑了这个问题,我不是作者:)@r.piesnikowski谢谢,我得到了答案。然而,我不太确定这些是否适用于所有人。看看我的答案。