微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery如果兄弟姐妹有类

我有以下jQuery检查提交表单:
$('#register_button').click(function (e) {
    var valid = true;
    $('.controls input').each(function () {
        if ($(this).siblings().hasClass('error')) {
            valid = false;
            alert('errors!');
            e.preventDefault();
            return false;
        }
    });
});

这是我输入的HTML结构:

<div class="controls">
    <input type="text" name="register_postcode" id="register_postcode" value="<?=(isset($_REQUEST['register_postcode']) ? $_REQUEST['register_postcode'] : 'xxxxxx')?>" />                    
    <div class="info">&nbsp;</div>
    <div class="valid" style="display:none;">&nbsp;</div>
    <div class="error" style="display:none;">&nbsp;</div>
</div>

提交表单时,警报会显示错误.

但是当我提交表单并且没有错误时,警报仍然显示并且表单未提交.

有任何想法吗?

解决方法

从我可以看到的输入元素是有效的,您不是删除具有类错误的元素,它只是隐藏.

因此,将测试更改为检查是否存在具有类错误的兄弟,以及错误是否可见

$('#register_button').click(function (e) {
    var valid = true;
    $('.controls input').each(function () {
        if ($(this).siblings('.error:visible').length) {
            valid = false;
            alert('errors!');
            e.preventDefault();
            return false;
        }
    });
});

你也可以这样做

$('#register_button').click(function (e) {
    if($('.controls .error:visible').length){
        alert('errors!');
        e.preventDefault();
    }
});

原文地址:https://www.jb51.cc/jquery/177554.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐