2011-01-07 117 views
1

我使用jquery.validate插件用於檢查用戶名可用性JQuery驗證遠程錯誤

如果用戶類型sample我需要顯示錯誤作爲

sample is availablesample is not available

$("#form_id").validate({ 
rules: { 
username: { 
required: true 
} 
}, 
messages:{ 
username: { 
required: "username should not be blank", 
remote: $('#username_id').val()+"is already available" 
} 
} 
}); 

遠程錯誤顯示

is not available 

我期待

sample is not available 

幫我急。

由於提前

更新時間: 我試過這個

remote: jQuery.format("{0} is already available") 

一旦我點擊提交按鈕錯誤顯示爲sample is not available,如果我再次點擊提交,並再次誤差變

server_pg.php is not available 

我不知道爲什麼jque ry.validate行爲不端,像這樣...

回答

4

我沒有在您的定義中看到任何remote規則。嘗試:

$("#form_id").validate({ 
    rules: { 
     username: { 
      required: true, 
      remote: 'test.cgi' 
     } 
    }, 
    messages:{ 
     username: { 
      required: 'username should not be blank', 
      remote: $.format('{0} is already available') 
     } 
    } 
}); 

另外,還要確保你的服務器端腳本返回JSON內容類型與truefalse值。最後確保用戶名輸入有id="username_id",如消息中所述。

+1

這是行不通的,注意你得到'.val()`用於錯誤信息*當頁面加載時*而不是驗證運行時,這就是這裏的問題:) – 2011-01-07 10:39:38

+0

我曾經使用過遠程文本元素爲遠程=「server_pg.php」。我試圖作爲你的代碼。沒有什麼適合我的 – 2011-01-07 10:41:21

2

如果你只是從郵件中刪除此:

remote: $('#username_id').val()+"is already available" 

然後什麼true將顯示爲消息,所以只是有你的服務器返回正是

"nameChecked is already avaialable" 

返回只有這個(或任何消息),包括引號和該字符串顯示。這也確保你得到的是被檢查的內容,而不是當前值。