javascript - 一旦 bool 变量为 false 在其他情况下不返回 true

标签 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

有什么想法吗?

最佳答案

可以用这个,更易维护

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;
    }
}

关于javascript - 一旦 bool 变量为 false 在其他情况下不返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327240/

相关文章:

javascript - 如何在绿色 div 中启用文本选择?

javascript - Chrome 为自定义 HTML 元素的 offsetWidth 返回 0

javascript - 通过 CSS 和 javascript 绘制树和动态设计(模式)

javascript - html - 如何在加载时填充输入文本?

javascript - jQuery:选择父列表项

javascript - IE 和 Safari 滚动条移动后不触发 mouseup 事件

javascript - 每次调用时定义/评估的变量

jquery - 在 jQuery 中从左到右移动元素

javascript - 附加到 <td> 而不是低于 <tr>。怎么了?

javascript - 如何从 jquery css 缩放 div