Jquery 客户端验证不起作用

Jquery client side validate not working

本文关键字:不起作用 验证 客户端 Jquery      更新时间:2023-09-26

我正在尝试使用jquery.validate.unotrusive.js插件来动态创建表单字段,例如:

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.validified和jquery.validate.unobtrusive js文件,但文本区域字段在表单提交时没有验证。谁能说出这里出了什么问题?

当您动态地向 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);