這裏的用例:MVC3 unobtrusive驗證:如何從一組元素中刪除/重新驗證驗證?
我有這個長的形式,只有當用戶在某個可見輸入中做出某種選擇時纔會變得可見。閱讀Brad Wilson關於該主題的文章我認爲jQuery.validator.unobtrusive.parse('。extra-data')其中.extra-data是隱藏div的類。沒有運氣,因爲第一次解析完成後數據已經存在。
所以在最後我想出了這個刪除的規則:
$('.data-panel').find('input[type="text"], textarea, select').each(function (i, item) {
var currentRules = $(item).rules('remove'); // Saving removed rules to a sorta dictionary
if (!$.isEmptyObject(currentRules)) {
removedRules[$(item).attr("name")] = currentRules;
}
});
,這重新連接它們:
$('.data-panel').find('input[type="text"], textarea, select').each(function (i, item) {
if (!$.isEmptyObject(removedRules[$(item).attr('name')])) {
$(item).rules('add', removedRules[$(item).attr('name')]);
}
});
問題是,感覺有點哈克,因爲我」 m逐字地通過每個字段刪除並重新附加這些驗證規則。我的問題是:沒有更直接的方法嗎?性能也是一個問題,在這些巨大的形式中,您可以感受到點擊和驗證運行之間的延遲。
http://stackoverflow.com/questions/5104288/adding-validation-with-mvc-3-jquery-validator-in-execution-time –