Jquery Unobstrusive验证手动显示有效的错误

时间:2017-06-26 16:24:58

标签: jquery-validate unobtrusive-validation

我已使用此处 Here中的链接和 Here中的示例手动将错误添加到我的输入中,但是当我在添加错误后尝试$("#myshowErrors").valid()时,它会变为真?

这是我的代码

var validator = $( "#myshowErrors" ).validate();
validator.showErrors({
  "firstname": "I know that your firstname is Pete, Pete!"
});

我无法使客户端验证失败。如何让form.valid()返回false

我不想手动制作form.valid()=false;我想通过设置错误来处理这个问题。

1 个答案:

答案 0 :(得分:0)

您的问题中缺少代码完全不清楚,但我认为您可能会误解附加the .valid() method的位置。

此方法仅附加到代表 <form>元素的选择器...

$('#myform').valid();  // triggers validation on the entire form

或者代表单个表单输入元素的任何选择器...

$('#myform input[name="myinput"]').valid();  // triggers validation on one input element

调用.valid()时,将对所选元素触发验证,显示错误消息,该方法将返回truefalse

.valid()方法永远不会附加到代表多个元素的选择器,或者不使用jQuery .each()的元素集合。

<强>编辑:

showErrors仅用于显示现有的错误。你不能让#34;无效&#34;通过调用showErrors来填写字段。字段有效或无效仅基于该字段中包含的内容。

您已使用不引人注目的验证标记了该问题。由于jQuery Validation是通过Unobtrusive Validation插件自动处理的,因此不允许您调用自己的.validate()方法实例。这是因为Unobtrusive插件会自动构建并调用.validate()。一旦被调用,插件就会被初始化,不能再被调用,所有后续调用都会被忽略。