2011-10-18 51 views
1

我有一個表單,具有不顯眼的驗證設置,並且在大多數情況下都可以正常工作。然而,有些情況下我必須禁用表單中的選擇元素,然後有時元素纔會重新啓用(大多數情況下,當QA嘗試每種可能的情況但仍然)。發生這種情況時,select元素上的「required」驗證規則不再有效。如何在一個字段上重新啓用ASP.NET MVC不顯眼驗證

我試過從元素的規則集合中刪除並重新添加所需的規則無濟於事。我已嘗試接線並調用描述爲here的驗證擴展,這也不起作用。

雖然我很想知道問題的根源,但我現在也打開了黑客和解決方法。我有一種感覺,這是一個解決的問題,但我沒有看到它在我的搜索。

感謝, 馬修

UPDATE:我很想只是選擇一個答案,不幹完了我的愚蠢的錯誤,但不會使網絡更好。發生了什麼是select元素中的選項是基於另一個字段的動態。當沒有項目進入基於該其他字段的選項時,以及在重新啓用選擇時新的填充選項時發生禁用。當我重新創建滿足「必需」規則的選項列表時,我在做的是在默認選項中輸入一個「0」值。我將默認值更改爲空字符串,問題就消失了。

處理問題的協議是什麼?我應該關閉它嗎?

回答

0

如果你打電話

$.validator.unobtrusive.parse('#formId'); 

如果我沒有記錯,這應該在具有不顯眼的data-屬性,這些屬性是#formId孩子的任何元素再次啓用不顯眼的驗證,會發生什麼。

+0

我相信我確實嘗試過,但我會驗證。 –

1

爲了重新解析不引人注目的驗證屬性,您必須首先清除在第一次解析屬性時創建的驗證程序和不顯眼的驗證數據。然後,您可以重新解析,如下所示:

$("form").removeData("validator"); 
$("form").removeData("unobtrusiveValidation"); 
$.validator.unobtrusive.parse("form"); 
相關問題