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插件,它工作正常:

http://jsfiddle.net/ocx864nu/