奇怪的脚本结果与验证

时间:2012-04-18 22:18:41

标签: jquery forms validation

我有一个效果很好的脚本,但我有一个小问题。

我刚刚添加到我的脚本中:

        if (isError) {
            $('html, body').animate({
                scrollTop: 0
            }, 2500);
        } else {
            $("#error-div").hide();
        }   

现在我遇到了问题。当我在输入中输入内容时,最后一个输入验证集$('#input_1 input')隐藏了错误div。所有其他输入都是红色的背景更改,但error-div消失 - 只有当我从#input1中移除错误时才会消失,这是脚本中的最后一个。

如果该输入中只有错误,则最后一个输入将关闭div错误。

无法弄明白。任何建议都会很棒。

$(function () {
$('#rbSubmit').formValidator({
    scope: '#form_register',
    onError: function () {
        var isError = false;
        if ($('#input_38 textarea').hasClass('error-input')) {
            isError = true;
            $('#r38 div').css('background-color', '#C1272D').css('color', '#FFF');
            $("#error-div").show();
        } else {
            $('#r38 div').css('background-color', '#2F2F2F');
            $("#error-div").hide();
        }
        if ($('#input_39 input').hasClass('error-input')) {
            isError = true;
            $('#r39 div, #r39 input').css('background-color', '#C1272D').css('color', '#FFF');
            $("#error-div").show();
        } else {
            $('#r39 div').css('background-color', '#2F2F2F');
            $("#error-div").hide();
        }



       // LAST DIV ALONE WILL TURN OFF THE div-error!!!  HELP!!!


        if ($('#input_1 input').hasClass('error-input')) {
            isError = true;
            $('#r1 div, #r1 input').css('background-color', '#C1272D').css('color', '#FFF');
            $("#error-div").show();
        } else {
            $('#r1 div').css('background-color', '#2F2F2F');
            $("#error-div").hide();
        }
        if (isError) {
            $('html, body').animate({
                scrollTop: 0
            }, 2500);
        } else {
            $("#error-div").hide();
        }
    }
});
});

2 个答案:

答案 0 :(得分:0)

尝试给error-div一个z-index高于其他输入的z-index:

http://coding.smashingmagazine.com/2009/09/15/the-z-index-css-property-a-comprehensive-look/

请注意,您必须指定一个职位属性。

答案 1 :(得分:0)

你为什么要执行$("#error-div")。show();和$(" #error-div")。hide();在每个if else块中?当然,如果检测到错误,您可以在最后执行:

if (isError) {
    $('html, body').animate({
        scrollTop: 0
    }, 2500);
    $("#error-div").show();
} else {
    $("#error-div").hide();
}

您使用什么jQuery插件进行验证?