如何在jQuery中根据其他元素的存在来隐藏和显示东西

How to hide and show things in jQuery based on the existence of other elements?

本文关键字:隐藏 存在 显示 元素 jQuery 其他      更新时间:2023-09-26

我有一个表单,如果表单提交时出现验证错误,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的形式

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

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

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