2012-06-07 118 views
0

我有一個基於jQuery文檔驗證演示的表單:http://jsfiddle.net/ABbDS/1/。點擊提交或按回車確認。jQuery插件驗證:重新驗證爲鍵入/鼠標焦點

如何使標籤/改變鼠標焦點/打字也驗證? (所以他們馬上知道郵件是

它是基於關閉的:http://jquery.bassistance.de/validate/demo/milk/(它做到這一點),並http://docs.jquery.com/Plugins/Validation/

點擊下一個元素或打標籤時,我的是沒有驗證答案我發現沒使用validate插件

編輯:這是正確的?答:https://stackoverflow.com/a/9381803/341744 是否$(本).valid()調用的validate()的函數

+0

是的,我相信你可以從得到你的答案文章 – williamcarswell

+0

你沒有正確使用jsFiddle。你已經包含jQuery兩次。資源被添加到左側,而不是在HTML面板中。請參閱:http://jsfiddle.net/ABbDS/6/ – Sparky

回答

0

quite a few events您可以添加到可以幫助您的驗證器選項。

實施例:

的onkeyup

Validate elements on keyup. As long as the field is not marked as invalid, nothing happens. Otherwise, all rules are checked on each key up event.

$(".selector").validate({ 
    onkeyup: true 
}); 
+0

它似乎不像引用那樣工作。在使字段無效並顯示消息之後,它仍然不會在按鍵上更新。直到我點擊提交或按回車。 - 我如何將你的代碼和我的變量'validator'整合在一起? – ninMonkey

3

documentation on the jquery site關於onfocusout在和的onkeyup有些誤導。它指出onfocusout和onkeyup是布爾值,這會導致您相信您可以將它們的值設置爲true或false。錯誤!你應該只將它們設置爲false。如果其值設置爲true,那麼你得到這個錯誤

Uncaught TypeError: Object true has no method 'call'

這是因爲默認onfocusout在和的onkeyup的功能不是布爾值。如果你設置這個值爲false,那麼這個函數就不會被調用,但是如果設置爲true,那麼你會得到一個javascript錯誤。這種類型的編程對於像我這樣的程序員來說很難用來強壯的打字習慣,但相當聰明。

沒有理由設置onfocusout在是真實的默認行爲是驗證在失去焦點,所以就刪除你的這兩行代碼

// remove these lines 
// onfocusout:true, 
// onkeyup: true