如何使用 jQuery 验证手动触发验证?

IT技术 javascript jquery html jquery-validate
2021-01-24 15:14:54

我想手动触发验证,包括使用jQuery Validate显示错误消息

我试图完成的场景是这样的形式:

<form>
 <input id=i1> <button id=b1>
 <input id=i2> <button id=b2>
</form>

单击 时b1,仅i1应进行验证。单击时b2,只i2应验证。但是,必须张贴所有字段。我怎样才能做到这一点?我想过处理单击事件b1/b2并手动验证表单的一部分。

6个回答

该库似乎允许对单个元素进行验证。只需将点击事件与您的按钮相关联,然后尝试以下操作:

$("#myform").validate().element("#i1");

这里的例子:

https://jqueryvalidation.org/Validator.element

这将验证整个表单...仅验证 1 个字段,正确的方法是:stackoverflow.com/a/12195091/114029
2021-03-14 15:14:54
无论出于何种原因,当我以这种方式验证时,我都没有收到自定义错误文本。可能与我在 Durandal 对话框中运行的事实有关。在上述背景下,这个框架有很多问题。
2021-03-16 15:14:54
@Roberto Aloi:链接已弃用
2021-03-24 15:14:54

或者可以简单地使用: $('#myElem').valid()

if ($('#myElem').valid()){
   // will also trigger unobtrusive validation only for this element if in place 
   // add your extra logic here to execute only when element is valid
}

请注意,validate()在使用此方法检查之前需要在表单上调用。

文档链接:https : //jqueryvalidation.org/valid/

validate() 需要在使用此方法检查之前在表单上调用。
2021-03-20 15:14:54
我有这样的查询 if ($('#myElem').val()=='2017-4-12'){ 日期选择错误 }else{ valid selection}
2021-03-27 15:14:54

我的方法如下。现在我只想在单击/更改一个特定复选框时验证我的表单:

$('#myForm input:checkbox[name=yourChkBxName]').click(
 function(e){
  $("#myForm").valid();
}
)
我的查询 if($('#someID)==='2017-4-12){ $("#myform").validate().element("#i1").valid();} else { $( "#myform").validate().element("#i1").invalid();} 是正确的代码
2021-04-02 15:14:54

正如文档中所写,以编程方式触发表单验证的方法是调用validator.form()

var validator = $( "#myform" ).validate();
validator.form();
这不能回答问题,因为问题是关于仅验证一个特定字段。但这正是我要找的。谢谢!
2021-04-01 15:14:54

从 1.14 版开始,有一个未记录的方法

validator.checkForm()

此方法静默验证返回真/假。它不会触发错误消息。

未记录 = 可能随时中断。
2021-04-05 15:14:54