如何基于其他元素的存在隐藏和显示jQuery中的东西?

时间:2011-07-12 14:58:30

标签: javascript jquery

我有一个表单,如果表单提交上存在验证错误,jquery验证插件将生成带有“error”类的div标签。如果存在任何此类div,我想在表单上方显示其他错误消息。此消息存储如下:

<p class="topError">Oops errors found!</p>

<form id="myForm">

// blah blah

</form>

如果插件没有生成错误div,我会做类似的事情:

if (('#myForm div.error').length() > 0 ) {
   $('p.topError').show();
}

在这种情况下,如何解决这个问题,我还需要在表格中没有任何错误div的情况下消除最大错误。

2 个答案:

答案 0 :(得分:1)

if ($('#myForm div.error').length > 0 ) {
   $('p.topError').show();
}
else {
   $('p.topError').hide();
}

答案 1 :(得分:0)

插件的showErrors回调可能会有所帮助,具体取决于您正在做什么。该插件似乎没有要绑定的事件,因此您可以绑定表单事件,然后根据该事件执行div.error检查。

$("#myForm input").bind("blur",function(){
    if (('#myForm div.error').length() > 0 ) {
        $('p.topError').show();
    } else {
        $('p.topError').hide();
    }
})