我正在使用jQuery验证插件来验证表单。表单字段是动态生成的。我有一封电子邮件:
<input type="text" name="customer_email_<?=$i?>" value="" id="customer_email_<?=$i?>" />
此输入字段位于php循环中,可以生成n次。我们的想法是检查输入的电子邮件是否唯一。当用户在生成的任何字段中输入内容时,如果电子邮件是唯一的,我将发送一个正在检查数据库的AJAX调用。
var pass_count_array = [<?=$js_array?>]; // generated by php
jQuery.each(pass_count_array, function(index, p) {
//check if the e-mail is unique
jQuery.validator.addMethod("unique_email_"+p, function(value, element) {
return check_unique_email(p);
});
var current_email = "customer_email_"+p;
jQuery("#tair_form").validate({
rules : {
current_email: {
"unique_email_"+p : true
}
});
});
上面的代码循环遍历所有字段,添加了自定义验证方法unique_email_1,unique_email_2等。 这里的问题是验证规则不接受这个:
"unique_email_"+p : true
如何将自定义验证方法应用于每个电子邮件输入字段?
答案 0 :(得分:1)
将一个类附加到电子邮件字段,这样您就不必按ID搜索,而是按类分组,这样您就可以对整个类对象应用检查。
例如,循环遍历.each()
,并根据需要设置警报。
答案 1 :(得分:0)
这个怎么样
<input type="text" name="customer_email" value="" id="<?=$i?>" />
$(function(){
$("input[name=customer_email]").change(function(){
var email = $(this).attr("id");
if(check_unique_email(email)==true){
//callback when email is unique
}else{
//callback when email is not unique
}
});
});