2014-09-21 103 views
0

我正在使用Jquery验证来验证表单。 我已经通过Jquery使用自定义验证规则验证任意HTML元素

$.validator.addMethod 

添加自定义验证方法,如果我添加此方法的文本框,确认将工作没有问题。

我想要这个自定义验证方法来突出显示我通过JavaScript创建的某个div容器。 如果我更改以下行(里面的.validate呼叫“规则”)

"MyTextbox": 
{ 
    MyMethod: true, 
}, 

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

我很努力地找到相应的文档。看来,我只能添加一个规则输入元素,而不是一个div。 我接近这个错误的方式吗?我如何添加一个规则,在某个div元素之后追加消息,如果验证失败?

+0

_“如何添加一条规则,在某个div元素之后添加一条消息,如果验证失败?”_〜取决于...您是否验证了input元素并需要帮助放置消息或你在寻找一种方法来验证'div'吗? – Sparky 2014-09-21 22:46:22

回答

4

两个重要的东西......

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

2)使用此插件,验证只能应用于inputtextareaselect元素。期。

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


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

+0

我没有意识到两件重要的事情;)我现在使用一个隐藏的输入,并将一个if/else块添加到errorPlacement =) – citronas 2014-09-22 14:52:57