2012-04-16 47 views
2

我想要做的是以下几点。我有一个图像显示悬停的工具提示。当一个字段没有通过验证时,我想在新的段落中显示默认的错误信息以及图像的标题。工具提示图像应该隐藏起来。当字段通过验证时,应该再次隐藏默认错误消息(默认行为),我的段落应该隐藏,并且应该再次显示工具提示图像。jQuery验证:显示/隐藏默认元素以外的自定义元素

所以,当一个字段没有通过验证:
- 默认验证错误消息
- 说明图像称号

当某个字段通过验证:
- 说明图像

我得到了'失败的验证'部分,但是当字段通过验证时,工具提示图像的标题仍然显示,工具提示图像被隐藏。所以我基本需要的是当某个字段通过验证时对函数的回调。

这是我到目前为止有:

$(document).ready(function(){ 

$('form#saveform').validate({ 

    ignore: ":hidden", 
    errorPlacement: function (error, element) { 

     var error_td = element.parent('td').next('td'); 
     var tooltip_img = error_td.find('img.tooltip'); 

     error_td.append(error); 
     error_td.append('<p class="notice">' + tooltip_img.attr('oldtitle') + '</p>'); 

     tooltip_img.hide(); 

    } 

}); 

}); 

谁能帮我做这项工作?

+2

你能把我们链接到一个jsFiddle,或粘贴在相关的html代码吗?如果发现它出现在您的元素选择中,现在将无法找到错误。 – BenjaminRH 2012-04-16 13:38:41

+0

嗨本杰明,谢谢你的回复。这并不是说这段代码不起作用。我只想添加一个方法来调用一个函数,当一个字段被标记为有效的时候,我会显示/隐藏正确的元素。上面的代码隐藏了工具提示图片,在特定表单字段旁边的列中显示错误和图片标题。我只需要修复上面代码中尚未捕获的“有效部分”。 – ev8 2012-04-16 14:03:43

回答

1

我不认为验证插件将有一个回调时验证成功。虽然它有回调来应用和删除错误突出显示元素。 所以你可以做的是:

$('form#saveform').validate({ 
    highlight: function(element, errorClass, validClass) { 
    // add error, hide image 
    }, 
    unhighlight: function(element, errorClass, validClass) { 
    // remove error, show image 
    } 
}); 
+0

谢谢rucsi,我已经使用你提供的方法。 – ev8 2012-04-17 07:18:49

0

啊 - 你想要的success钩:

$(document).ready(function(){ 

    $('form#saveform').validate({ 

     ignore: ":hidden", 
     errorPlacement: function (error, element) { 

      var error_td = element.parent('td').next('td'); 
      var tooltip_img = error_td.find('img.tooltip'); 
      error_td.append(error); 
      error_td.append('<p class="notice">' + tooltip_img.attr('oldtitle') + '</p>'); 
      tooltip_img.hide(); 

     } 
     success: function() { 
      // Your success code here... 
     } 

    }); 

}); 
+0

我的确曾尝试过,但只要创建成功钩子,它就会在所有必填字段(即有效或无效! 。 – ev8 2012-04-16 14:21:03