jQueryvalidation不触发
我有以下html和js,但它没有触发文本输入字段模糊或表单提交的jquery.validatevalidation。 如果我将“required”属性直接添加到文本输入字段,则会启动默认错误消息。 任何人都可以帮我弄清楚为什么以下不起作用?
$(document).ready(function(){ ValidateForm(); }); function ValidateForm(){ $.validator.unobtrusive.parse($("form")); $('#test').validate({ rules: { "txtName": "required" }, messages: { "txtName": "this name is required for sure!" }, errorPlacement: function (error, element) { $(element).parent().append(error); }, onfocusout: function (element) { this.element(element); } }); }
你为什么要包括unobtrusive
插件?
你自己调用.validate()
方法时不能同时使用unobstrusive
插件。
为什么?
因为unobtrusive
插件会根据HTML属性自动构造和调用.validate()
方法。
由于插件仅使用第一次调用.validate()
来初始化validation,因此它会自动忽略所有后续调用。 所以你对.validate()
调用完全被忽略了。
如果我直接在文本输入字段中添加“required”,则会启动默认错误消息。
由于unobtrusive
插件,jQuery Validate完全忽略了对.validate()
调用。 这就是为什么它只在你将input
属性放在input
元素中时才有效。
完全删除unobtrusive
插件,它工作正常: