我正在使用jQuery驗證器來驗證包含Kendo文本框的Razor視圖中的表單上的字段。驗證設置爲模型上的數據註釋。一切工作完美的驗證,如最大長度,電子郵件類型等,但是,我不能得到這個運行所需的領域,直到表單提交。我讀過的所有信息似乎都表明這是按照設計工作的。那麼,我不希望用戶爲了發現他們遺漏了一個必填字段而必須做一個回傳。當用戶關閉文本框時,沒有辦法在jQuery驗證器中包含data-val-required?jQuery驗證器需要檢查必需的onblur
我曾嘗試加入以下到我的文檔準備功能,但我似乎無法強制驗證的元素出現:
$('#myForm').validate({
onfocusout: function (element) {
var required = $(element).attr('data-val-required');
if (required) {
$(element).attr('required', 'required');
//alert('Element ' + $(element).attr('id') + ' ' + $(element).attr('required'));
$(element).validate();
}
});
在這一點上,我甚至會接受一個完整的當頁面加載時在整個表單上進行規模驗證。我更習慣於包含所有驗證的Angular和Breeze,所以我希望我錯過了這個問題的一個明顯的解決方案。
previous question這種類型的解決這個問題是爲了重新編輯輸入。擺在那裏的解決方案將不起作用,因爲我希望在輸入輸入之前進行驗證 - 僅在onblur事件上 - 或者在調用控制器方法之前用戶單擊提交按鈕時進行特定的驗證調用。我開始認爲這是不可能的,並且真的希望我們使用的不是剃刀。還有什麼可以輕鬆驗證表單的嗎?
感謝您的幫助!
不是$(element).valid();而不是$(元素).validate();?看看這裏:http://stackoverflow.com/questions/4622232/jquery-validation-onblur/16205614 –
@ axel.michel,實際上,當在一個回調函數的上下文中使用時,它是'this.element(element )'。請參閱:http://stackoverflow.com/a/34644492/594235 – Sparky