2017-06-26 17 views
-1

我已經使用手動在這裏 Here的鏈接,並在 Here的例子中添加錯誤,我的投入,但是當我嘗試$("#myshowErrors").valid()後,我加入成爲真正的錯誤?jQuery的Unobstrusive驗證顯示錯誤手動爲有效

這裏是我的代碼

var validator = $("#myshowErrors").validate(); 
validator.showErrors({ 
    "firstname": "I know that your firstname is Pete, Pete!" 
}); 

我無法使客戶端驗證失敗。如何使form.valid()返回false

我不想讓form.valid()=false;手動設置我希望通過設置錯誤來照顧。

+0

您需要更好地向我們展示代碼。 – Sparky

+0

點擊我問題中的鏈接查看代碼。 –

+0

你不應該使用外部鏈接,而不是顯示自己的代碼。請點擊此鏈接:https://stackoverflow.com/help/how-to-ask – Sparky

回答

0

你的問題缺乏代碼完全不清楚,但我認爲你可能會誤解the .valid() method

此方法僅被附連到代表單個<form>元件的選擇器...

$('#myform').valid(); // triggers validation on the entire form 

或對錶示單個形式輸入元件的任何選擇器...

$('#myform input[name="myinput"]').valid(); // triggers validation on one input element 

當調用.valid()時,將在所選元素上觸發驗證,顯示錯誤消息,並且該方法將返回truefalse

不能將.valid()方法附加到表示多個元素的選擇器或不使用jQuery的元素集合.each()


EDITS:

showErrors只是爲了顯示現有錯誤。您不能通過調用showErrors來「無效」某個字段。字段根據該字段中包含的內容而有效或無效。


您已使用Unobtrusive Validation標記了該問題。由於jQuery Validation是通過Unobtrusive Validation插件自動處理的,因此不允許調用您自己的.validate()方法實例。這是因爲Unobtrusive插件會自動構造並調用.validate()。一旦被調用,插件被初始化,不能再被調用,並且所有後續調用都會被忽略。

+0

所以我的問題是,如果我使用validator.showErrors(我知道你的名字是皮特,皮特!「 });爲什麼$('#myform').valid()返回true,我想讓它返回false,如果我從表單中取消任何一個inout。 –

+0

@AmeteBlessed,因爲你在某個地方犯了一個錯誤。因爲我看不到你的代碼 – Sparky

+0

@AmeteBlessed,我也不知道爲什麼你認爲你可以通過調用「showErrors」來「無效」一個字段。字段根據該字段中包含的內容有效或無效。 – Sparky