我有以下代码
$(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/