JQuery验证插件:如何使错误消息成为错误标签中的属性?

时间:2011-04-15 19:40:22

标签: javascript jquery validation jquery-validate

现在我已经有了验证插件,可以根据字段是否有效来显示带有两个背景图像之一的标签。但是,错误文本仍然插入“无效”标签中(默认情况下,“有效”标签没有任何错误消息)。

我想删除显示在“无效”错误标签上的文本,并将其作为属性值放在标签内。这样,我可以使用工具提示插件将其显示为鼠标悬停时的工具提示。

问题是,我不知道该怎么做。

我知道我必须“拦截”消息验证器选项中的错误消息以阻止它们出现。该选项可以为给定的需求提取函数,该函数返回错误字符串(我将设置为“”)。但是(据我所知),我无法从那里访问错误标签对象以将消息作为属性插入。该选项的描述声明该函数将“the element”作为第二个参数,但我不确定这是否意味着DOM元素或JQuery.val规则元素:

  

消息:

     

定义自定义的键/值对   消息。 Key是一个名字   element,重视要显示的消息   对于那个元素。而不是一个平原   留言具体的另一张地图   可以使用每个规则的消息。   覆盖一个的title属性   元素或默认消息   方法(按此顺序)。每条消息   可以是String或Callback。该   回调是在范围内调用的   验证者和规则的   参数作为第一个和   它作为第二个安慰因素   必须返回一个String才能显示为   消息。

我认为它是字段DOM元素,并尝试执行以下操作:

 //#createAccount is the id for the form
 messages: {
               eMail: {
                   required: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Required"); return "";},

                   email: function(param,element){
                       $("#createAccount label[class=\"error\"][for=" + element.getAttribute("name") + "]")
                       .attr("message","Not valid email"); return "";}
                    }
           },
            success: "valid"
    ...
    ...

但由于某种原因,它正在操纵成功验证器选项,我用它来选择要显示的背景图像。所以它标记的事情是有效的,它不应该。

我只是想知道这是否是正确的方法,或者是否有更简单的方法

1 个答案:

答案 0 :(得分:0)

好的,我弄清楚出了什么问题。看来如果你提交一个空字符串(“”)作为元素的消息,插件将认为该字段是有效的。只要你返回除“”或“之外的任何内容,你就可以在函数内部做你必须做的事情(我最后返回”\ 0“,这不是一个可打印的字符)