我有一種情況,我創建一個不顯眼的驗證程序,必須驗證只有驗證字段不是空的時候才需要另一個字段(反之亦然)。問題是有一些邊界情況下,其他字段沒有重新驗證,我想強制它重新驗證自己而不會導致無限循環。驗證其他領域沒有造成無限循環
我的驗證方法是這樣的:
$.validator.addMethod("jqiprequired", function (value, element, params) {
if (!this.optional(element) || (this.optional(params) && this.optional(element))) {
return true;
}
return false;
});
params爲我的其他領域(均爲文本框)。如果兩者都是空的,則它通過,如果兩者都有值,則通過。它只會失敗,如果只有一個有價值。
這工作正常,除了如果一個字段是空的,另一個有一個值,那麼你從字段中刪除值的值,空字段不重新驗證(因爲它的值沒有改變)。
我試着這樣做:
if (!this.optional(element) || (this.optional(params) && this.optional(element))) {
$('form').validate().element(params);
return true;
}
但是這會導致一個無限循環,因爲每經過一次,它調用其他。
我該如何導致其他字段驗證,而沒有自己調用原始字段?
是的,我試過了。結果很奇怪。它有點奏效,但驗證是遍佈整個地方,有時會停止20到30次。看起來''.validate()'調用再次驗證整個表單。 –