Bootstrap 表单验证

发布于 2022-09-01 23:01:08 字数 5747 浏览 10 评论 0

修改了wecenter花哨的表单验证提示后如下

          <div class="col_full">
            <label for="reg_name">用户名:</label>
            <input type="text" name="user_name" id="reg_name" class="form-control" value="" placeholder="请输入一个 2-14 位的用户名" />
          </div>
<script type="text/javascript">
$(document).ready(function() {
    verify_register_form('#register_form');
    /* 注册页面验证 */
    function verify_register_form(element) {
        $(element).find('[type=text], [type=password]').on({
            focus: function() {
                if (typeof $(this).attr('tips') != 'undefined' && $(this).attr('tips') != '') {
                    $(this).parent().addClass('has-success');
                }
            },
            blur: function() {
                if ($(this).attr('tips') != '') {
                    switch ($(this).attr('name')) {
                    case 'user_name':
                        var _this = $(this);
                        if ($(this).val().length >= 0 && $(this).val().length < 2) {
                            $(this).parent().addClass('has-error');
                            return;
                        }
                        if ($(this).val().length > 17) {
                            $(this).parent().addClass('has-error');
                            return;
                        } else {
                            $.post(G_BASE_URL + '/account/ajax/check_username/', {
                                username: $(this).val()
                            },
                            function(result) {
                                if (result.errno == -1) {
                                   _this.parent().addClass('has-error');
                                } else {
                                    _this.parent().addClass('has-success');
                                }
                            }, 'json');
                        }
                        return;
                    }
                }
            }
        });
    }
});
</script>

现在的问题是任意项报错has-error再修正后依然无法改变状态,也就是表单失去焦点不重新验证添加has-success,其中if ($(this).attr('tips') != '') {这if貌似多于,求修正方法,先谢过!

简单的说假如首次输入名字不符合规则表单class添加has-error警示,用户修改正解后依然不改变表单红色边框!

源码

                <li>
                    <input class="aw-register-name form-control" type="text" name="user_name" placeholder="<?php _e('用户名'); ?>" tips="<?php _e('请输入一个 2-14 位的用户名');?>" errortips="<?php _e('用户名长度不符合');?>" value="" />
                </li>
    verify_register_form('#register_form');

    /* 注册页面验证 */
    function verify_register_form(element)
    {
        $(element).find('[type=text], [type=password]').on({
            focus : function()
            {
                if (typeof $(this).attr('tips') != 'undefined' && $(this).attr('tips') != '')
                {
                    $(this).parent().append('<span class="aw-reg-tips">' + $(this).attr('tips') + '</span>');
                }
            },
            blur : function()
            {
                if ($(this).attr('tips') != '')
                {
                    switch ($(this).attr('name'))
                    {
                        case 'user_name' :
                            var _this = $(this);
                            $(this).parent().find('.aw-reg-tips').detach();
                            if ($(this).val().length >= 0 && $(this).val().length < 2)
                            {
                                $(this).parent().find('.aw-reg-tips').detach();
                                $(this).parent().append('<span class="aw-reg-tips aw-reg-err"><i class="aw-icon i-err"></i>' + $(this).attr('errortips') + '</span>');
                                return;
                            }
                            if ($(this).val().length > 17)
                            {
                                $(this).parent().find('.aw-reg-tips').detach();
                                $(this).parent().append('<span class="aw-reg-tips aw-reg-err"><i class="aw-icon i-err"></i>' + $(this).attr('errortips') + '</span>');
                                return;
                            }
                            else
                            {
                                $.post(G_BASE_URL + '/account/ajax/check_username/', 
                                    {
                                        username: $(this).val()
                                    }, function (result)
                                {
                                    if (result.errno == -1)
                                    {
                                        _this.parent().find('.aw-reg-tips').detach();
                                        _this.parent().append('<span class="aw-reg-tips aw-reg-err"><i class="aw-icon i-err"></i>' + result.err + '</span>');
                                    }
                                    else
                                    {
                                        _this.parent().find('.aw-reg-tips').detach();
                                        _this.parent().append('<span class="aw-reg-tips aw-reg-right"><i class="aw-icon i-followed"></i></span>');
                                    }
                                }, 'json');
                            }
                            return;

                    }
                }

            }
        });
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤君无依 2022-09-08 23:01:08

自己琢磨.removeClass('has-error') 搞掂。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文