我有一個帶有ASP MVC3的表單,並且input
字段通過jQuery validate插件v1.8(使用MVC3的默認jQuery驗證)進行驗證。這是完美的工作,但問題是當我插入一個新的字段來驗證使用after
或append
函數。插入後跟或附加字段的驗證
如果我有這樣的HTML:
<label for="name">Name: </label>
<input class="text-files" data-val="true" data-val-required="Name missing" id="name" name="name" type="text" value="">
<span class="field-validation-error" data-valmsg-for="name" data-valmsg-replace="true"></span>
它工作正常,但如果我用after
或insert
功能插入它,它不工作:
$(window).load(function() {
$('#addName').click(function (event) {
event.preventDefault();
var $newdiv = $('<label for="name">Name: </label><input class="text-files" data-val="true" data-val-required="Name missing" id="name" name="name" type="text" value=""><span class="field-validation-error" data-valmsg-for="name" data-valmsg-replace="true"></span>');
$('.names').append($newdiv);
});
});
什麼是「不起作用」?但是,如果您動態添加表單字段,則可以使用['rules('add')'方法](http://jqueryvalidation.org/rules)來應用規則。 – Sparky
不工作意味着新字段未經驗證。關於規則(添加),它不工作,因爲MVC使用不顯眼的客戶端驗證。我在這裏找到了解決方案:http://stackoverflow.com/questions/4406291/jquery-validate-unobtrusive-not-working-with-dynamic-injected-elements – Alberto
「不顯眼」驗證總是更痛苦,而不是值得。另外,請在下面發佈您的實際解決方案,而不僅僅是一個鏈接。這是幫助未來讀者的最佳方式。 – Sparky