jQuery的客户端验证工作不

问题描述:

我试图用jquery.validate.unotrusive.js插件动态创建像表单字段:jQuery的客户端验证工作不

var message = $("<textarea id='test'></textarea>"); 
$(message).attr("data-val", "true") 
.attr("data-val-number", "The field CustomerId must be a number.") 
.attr("data-val-required", "The CustomerId field is required."); 

var span = $('<span class="field-validation-valid" data-valmsg-replace="true"></span>'); 
$(span).attr("data-valmsg-for", $(message).attr("id")); 

var form = $("<form action='url'></form>"); 

$(form).append(message,span); 

我同时嵌入jquery.validate & jquery.validate.unobtrusive JS文件但textarea字段不在表单提交上验证。有人可以告诉这里出了什么问题吗?

当您向DOM动态添加新元素时,您需要重新分析不显眼的验证规则以注册它们。所以,一旦你追加的形式向DOM调用$.validator.unobtrusive.parse方法来通知这些改变的客户端验证框架:

... 
$(form).append(message, span); 
$.validator.unobtrusive.parse(form); 

如果你只动态添加输入元素已经存在的形式在DOM为其客户端验证已被注册,你还需要删除以前的规则这种形式:

// adding some form elements to an existing form ... 

$(form).removeData('validator').removeData('unobtrusiveValidation'); 
$.validator.unobtrusive.parse(form); 
+0

感谢的答案,它完美 –

+0

有一个问题,该错误信息是不是只显示红色边框显示错误 –

+0

对不起,我无法重现你的问题正在谈论。这里有一个你可以玩的现场演示:http://jsfiddle.net/uqngb/1/ –