一旦布尔变量false,在其他情况下不返回true

时间:2014-06-20 12:25:16

标签: javascript jquery html if-statement

我已获得以下代码

$(function(){

    var isValid = function(test_obj, element){
        if(!test_obj.val().length > 0){
            element.addClass('has-error');
            return false;
        }else{
            element.removeClass('has-error');
            return true;
        }
    };
    $('#rta_parties_form').submit(function(event){

        var formSubmit;

        formSubmit = isValid($('#rta_cl_fn'), $('#div_cl_fn'));
        formSubmit = isValid($('#rta_cl_ln'), $('#div_cl_ln'));
        formSubmit = isValid($('#rta_cl_ph'), $('#div_cl_ph'));
        formSubmit = isValid($('#rta_cl_mob'), $('#div_cl_mob'));

        if(!formSubmit){
            event.preventDefault();
        }else{
            alert('formSubmit successfully');
        }


    });
});

正如您所看到的,我在四个不同场合使用formSubmit = isValidToggle($('#rta_cl_fn')$('#div_cl_fn'));。我的问题:让我们在前3个实例中说它返回false但是在第四个实例上,它返回true,然后它会成功提交表单吗?

有没有办法检查这些实例中是否有任何实例返回false或将所有实例设置为false,因此不应提交表单?

我知道我可以使用嵌套的if语句,但是,使用函数有什么意义呢?我想避免在我的代码中使用多个if语句。这就是我编写函数的原因;否则,我可以在实际代码中使用功能代码并将formSubmit设置为false

有什么想法吗?

6 个答案:

答案 0 :(得分:2)

您可以执行以下操作

    var formSubmit1, formSubmit2, formSubmit3, formSubmit4;
    formSubmit1 = isValidToggle($('#rta_cl_fn'), $('#div_cl_fn'));
    formSubmit2 = isValidToggle($('#rta_cl_ln'), $('#div_cl_ln'));
    formSubmit3 = isValidToggle($('#rta_cl_ph'), $('#div_cl_ph'));
    formSubmit4 = isValidToggle($('#rta_cl_mob'), $('#div_cl_mob'));

    if(!formSubmit1 || !formSubmit2 || !formSubmit3 || !formSubmit4){
        event.preventDefault();
    }else{
        alert('formSubmit successfully');
    }

答案 1 :(得分:2)

你应该像

一样使用它
formSubmit = isValidToggle($('#rta_cl_fn'), $('#div_cl_fn'));
formSubmit = formSubmit && isValidToggle($('#rta_cl_ln'), $('#div_cl_ln'));
formSubmit = formSubmit && isValidToggle($('#rta_cl_ph'), $('#div_cl_ph'));
formSubmit = formSubmit && isValidToggle($('#rta_cl_mob'), $('#div_cl_mob'));

答案 2 :(得分:2)

你可以使用这个,更易于维护的

var tmp = [$('#div_cl_fn'), $('#div_cl_ln'), $('#div_cl_ph'), $('#div_cl_mob')];

var i = -1;
while (++i < tmp.length)
{
    if (!isValidToggle($('#rta_cl_mob'), tmp[i]))
    {
        event.preventDefault();
        break;
    }
}

如果要添加要检查的内容,只需在数组中添加一个条目

即可

或者

for (var i in toCheck = [$('#div_cl_fn'),
                         $('#div_cl_ln'),
                         $('#div_cl_ph'),
                         $('#div_cl_mob')])
{
    if (!isValidToggle($('#rta_cl_mob'), toCheck[i]))
    {
        event.preventDefault();
        break;
    }
}

答案 3 :(得分:1)

试试这个...... 你可以用单行做......

formSubmit = isValidToggle($('#rta_cl_fn'), $('#div_cl_fn')) && isValidToggle($('#rta_cl_ln'), $('#div_cl_ln')) &&  isValidToggle($('#rta_cl_ph'), $('#div_cl_ph')) && isValidToggle($('#rta_cl_mob'), $('#div_cl_mob'))

在此,它将检查第一个条件,如果它是真的那么它将检查进一步的条件,否则它将带你出去。

答案 4 :(得分:1)

将执行所有验证。

$(function(){

    var formValid,
        isValid = function(test_obj, element){
        if(!test_obj.val().length > 0){
            element.addClass('has-error');
        }else{
            element.removeClass('has-error');
            formValid = true;
        }
    };
    $('#rta_parties_form').submit(function(event){

        var formSubmit;
        formValid = false;

        isValidToggle($('#rta_cl_fn'), $('#div_cl_fn'));
        isValidToggle($('#rta_cl_ln'), $('#div_cl_ln'));
        isValidToggle($('#rta_cl_ph'), $('#div_cl_ph'));
        isValidToggle($('#rta_cl_mob'), $('#div_cl_mob'));

        if(!formValid){
            event.preventDefault();
        }else{
            alert('formSubmit successfully');
        }


    });
});

答案 5 :(得分:0)

非常感谢大家,但我得到了我想要的东西我将此代码放在这里,如果有人想在将来使用这些代码......

$(function(){

    //below is one way using function
    var isValid = function(test_obj, element){
        if(!test_obj.val().length > 0){
            element.addClass('has-error');
            return false;
        }else{
            element.removeClass('has-error');
            return true;
        }
    };

    $('#rta_parties_form').submit(function(event){

        var formSubmit = [];

        formSubmit[0] = isValid($('#rta_cl_fn'), $('#div_cl_fn'));
        formSubmit[1] = isValid($('#rta_cl_ln'), $('#div_cl_ln'));
        formSubmit[2] = isValid($('#rta_cl_ph'), $('#div_cl_ph'));
        formSubmit[3] = isValid($('#rta_cl_mob'), $('#div_cl_mob'));

        var validForm = true;
        for (var i = 0; i < formSubmit.length; i++) {
            if(formSubmit[i] == false){
                validForm = false;
            }
        };

        if(!validForm){
            event.preventDefault();
        }else{
            alert('formSubmit successfully');
        }

    });

});

这对我来说很好,感谢大家再一次帮助你。