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谢谢,我得到了答案。然而,我不太确定这些是否适用于所有人。看看我的答案。