2010-09-05 80 views
2

我在使用jQuery驗證插件和IE時遇到問題。驗證表單時,出現以下錯誤「未定義爲空或不是對象」。未定義爲空或不是對象-jQuery驗證

的錯誤是在行431: 「$(」 #signup_meeta 「);

$(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; 
    } 

}); 

}) 

有人可以幫我請提交()。」?

最好的問候, 薩利姆

回答

1

你應該調用本機form.submit()方法,以避免錯誤和無限循環在這裏,像這樣:

form.submit(); 

的驗證插件,默認情況下,增加了一個submit處理器在<form>元素上,因此觸發submitHandler中的事件將導致驗證再次運行,再次通過,沖洗/重複並無限循環。如果你看看submitHandler documentation它特別提到:

使用submitHandler來處理一些事情,然後使用默認提交。請注意,「表單」是指一個DOM元素,這種方式驗證不會再次觸發。

+0

非常感謝這個快速的回答!它已經解決了我的問題:) – Salim 2010-09-05 13:05:55

+0

@Salim - 一定要發表評論,如果它沒有解決問題,或者通過左側的檢查接受答案,如果它確實:) – 2010-09-05 13:08:48

相關問題