我已获得以下代码
$(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
。
有什么想法吗?
答案 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');
}
});
});
这对我来说很好,感谢大家再一次帮助你。