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);
感谢的答案,它完美 –
有一个问题,该错误信息是不是只显示红色边框显示错误 –
对不起,我无法重现你的问题正在谈论。这里有一个你可以玩的现场演示:http://jsfiddle.net/uqngb/1/ –