在IE中使用jquery validate插件时遇到问题。验证表单时,我收到以下错误“undefined is null or not object”。
错误在第431行:“ $(”#signup_meeta“)。submit(); ”
$(document).ready(function() {
$("#pseudobox").hide();
$("#passwdbox").hide();
$("#emailbox").hide();
$("#sexebox").hide();
$("#originbox").hide();
$("#birthdaybox").hide();
$("#countrybox").hide();
$("#regionbox").hide();
$("#dptbox").hide();
$("#acceptbox").hide();
$("#dpt").hide();
dynamicSelectRegion();
$("#fromc").change(function() {
dynamicSelectRegion();
});
$('a[rel*=facebox]').facebox();
$("#signup_meeta").validate({
ignore : ":hidden",
rules: {
nickname : {
required : true,
minlength : 5,
maxlength : 15,
remote : "?q=register/CheckUsername",
nowhitespace : true,
nospecialcar : true
},
passwd : {
required : true,
minlength : 5
},
email : {
required : true,
email : true,
nowhitespace : true,
nospecialcar : true
},
gender : {
required : true
},
origin : {
required : true
},
birth_day : {
required : true
},
birth_month : {
required : true
},
birth_year : {
required : true
},
fromc : {
required : true
},
region : {
required : true
},
department : {
required: true
},
accept_cgu : {
required : true
}
},
messages: {
nickname : {
required : "Veuillez entrer votre pseudo svp",
minlength: "Votre pseudo doit contenir au - 5 caractères",
maxlength: "Votre pseudo doit contenir au + 15 caractères",
remote: "Ce pseudo n'est pas disponible. Modifiez svp",
nowhitespace: "Ce champ ne doit pas contenir d\'espace",
nospecialcar: "Ce champ ne doit pas contenir de caractère spécial"
},
passwd : {
required : "Veuillez entrer votre mot de passe svp",
minlength: "Votre mot de passe doit contenir au - 5 caractères"
},
email : {
required : "Veuillez entrer votre adresse email svp",
nowhitespace: "Ce champ ne doit pas contenir d\'espace",
nospecialcar: "Ce champ ne doit pas contenir de caractère spécial"
},
gender : {
required : "Veuillez sélectionner votre sexe svp"
},
origin : {
required : "Veuillez sélectionner votre pays d\'origine svp"
},
birth_day : {
required : " Votre jour de naissance ?"
},
birth_month : {
required : " Votre mois de naissance ?"
},
birth_year : {
required : " Votre année de naissance ?"
},
fromc : {
required : "Veuillez sélectionner votre pays svp"
},
region : {
required : "Veuillez sélectionner votre région svp"
},
department : {
required : "Veuillez sélectionner votre département svp"
},
accept_cgu : {
required : "Veuillez accepter les CGUs svp"
}
},
submitHandler: function(form) {
**$("#signup_meeta").submit();**
return false;
}
});
})
有人能帮助我吗?
祝你好运, 姆
答案 0 :(得分:1)
您应该调用本机form.submit()
方法以避免错误和无限循环,如下所示:
form.submit();
默认情况下,验证插件会在<form>
元素上添加submit
处理程序,因此在submitHandler
中触发该事件会导致验证再次运行,再次传递,冲洗/重复,无限循环。如果你看一下submitHandler
documentation它会特别提到这个:
使用submitHandler处理某些内容,然后使用默认提交。请注意,“form”指的是DOM元素,这样就不会再次触发验证。