【问题标题】:Jquery validate arbitrary HTML elements with custom validation rule [duplicate]Jquery使用自定义验证规则验证任意HTML元素[重复]
【发布时间】:2014-09-21 19:46:54
【问题描述】:

我正在使用 Jquery Validate 来验证表单。 我通过

添加了一个自定义验证方法
$.validator.addMethod

如果我将此方法添加到文本框,验证将毫无问题。

我希望这种自定义验证方法能够突出显示我通过 JavaScript 创建的某个 div 容器。 如果我更改以下行(在 .validate 调用中的“规则”内)

"MyTextbox": 
{
  MyMethod: true,
},

要使用我通过 JavaScript 创建的 div 的 ID,我的自定义验证规则将被忽略(其他规则仍然适用)。

我正在努力寻找相应的文档。似乎我只能将规则添加到输入元素而不是 div。 我是以错误的方式接近这个吗?如果验证失败,如何添加一条规则,在某个 div 元素之后附加一条消息?

【问题讨论】:

  • “如果验证失败,我如何添加一条规则,在某个 div 元素之后附加一条消息?” ~ 取决于...您是否正在验证 @ 987654323@ 元素并需要帮助放置消息,或者您是否正在寻找验证div 的方法?

标签: javascript jquery asp.net jquery-validate


【解决方案1】:

两件重要的事情......

1) 您必须在.validate() 中使用rules 选项时通过name 分配规则,并且每个输入字段必须包含唯一的name属性,无论规则如何分配。

2) 使用此插件,验证只能应用于input、textarea 和select 元素。期间。

解决方法:您可以创建一个type="hidden" input 元素进行验证,并在某个触发事件时使用jQuery 将相关值从您的div 复制到此隐藏字段中。 You can then manually trigger validation using something like $('#myHiddenInput').valid().


对于精确的错误消息放置,您可以使用the errorPlacement callback function。编写一个带有条件的自定义函数来放置一条消息。

【讨论】:

  • 我不知道这两个重要的事情 ;) 我现在使用隐藏的输入并将 if/else 块添加到 errorPlacement =)
猜你喜欢
  • 1970-01-01
  • 2016-10-04
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2014-04-22
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多