0
我正在使用驗證插件與我的表單,我正在面臨與遠程函數的一些困難。jquery驗證遠程函數
我正在使用它來ajax發佈到一個文件,然後返回true或false。 當我輸入一個電子郵件被採取或採取用戶名,它會提示正確的錯誤信息。
但是,當ajax返回true時,它不會做任何事情。也就是說,直到我點擊電子郵件輸入框,然後點擊重新觸發它。那麼它會驗證它。我曾嘗試過很多不同的解決方案,比如onblur觸發器等。事情是,所有其他輸入字段都是開箱即用,沒有問題。 checkmail文件是非常直接的,迴應真或假,沒有真正的問題,在那裏..
這是一個電子郵件檢查和用戶名檢查和規則是相同的兩個,除了它調用的文件:
$("#registerHere").validate({
onkeyup: false,
onblur: true,
rules:{
usr_name: {
required: true,
minlength: 5,
remote: {
url: "inc/checkuser2.php",
type: "post",
async: false
}
},
full_name:"required",
blog_name:"required",
user_email: {
required: true,
email: true,
remote: {
url: "inc/checkmail.php",
type: "post",
async: false,
data: {
user_email: function() {
return $("#user_email").val()
}
}
}
},
pwd:{
required:true,
minlength: 6
},
cpwd:{
required:true,
equalTo: "#pwd"
},
gender:"required"
},
messages:{
usr_name:{
required: "Velg et brukernavn",
minlength: "Minimum 5 bokstaver",
remote: "Dette brukernavnet er opptatt"
},
full_name:"Skriv inn navnet ditt",
blog_name:"Velg en tittel til bloggen din",
user_email:{
required: "Fyll inn e-post adressen din",
email:"Dette er ikke en gyldig e-post adresse",
remote:"Denne e-posten finnes allerede"
},
pwd:{
required:"Velg passord",
minlength:"Passordet må ha 6 tall og bokstaver"
},
cpwd:{
required:"Gjenta passordet",
equalTo:"Passordene er ikke like"
},
gender:"Velg kjønn"
},
errorClass: "help-inline",
errorElement: "span",
highlight:function(element, errorClass, validClass) {
$(element).parents('.control-group').addClass('error');
},
unhighlight: function(element, errorClass, validClass) {
$(element).parents('.control-group').removeClass('error');
$(element).parents('.control-group').addClass('success');
}
});
這裏是我的checkmail.php(將消毒一次,它的工作原理):
$duplicate = mysql_query("select count(*) as total from users where user_email='$user' ") or die(mysql_error());
list($total) = mysql_fetch_row($duplicate);
if ($total > 0)
{
$valid = 'false';
} else {
$valid = 'true';
}
echo $valid;
exit;
這不是關鍵,因爲形式似乎提交,但我討厭離開它這樣當我如此接近我想要的東西!
希望這是可以理解的,我真的很感謝任何幫助,因爲我閱讀並嘗試了谷歌給我的一切!
你能告訴我們錯誤嗎?什麼使它不起作用 – Gerep 2012-04-25 18:24:20
它不是真的發生錯誤。它不會首先觸發驗證事件。我必須通過再次點擊輸入來重新觸發它。那麼它工作正常。但是如果使用電子郵件,它會一次觸發。 – Havihavi 2012-04-25 18:26:28
您是否嘗試過使用http://api.jquery.com/trigger/? – Gerep 2012-04-25 18:27:49