我有很多用于验证的功能。我可以为所有函数使用相同的返回变量吗?
function fn1() {
if () {..
first = true;
} else {
first = false;
}
return first;
}
function fn2() {
if () {..
second = true;
} else {
second = false;
}
return second;
}
function fn3() {
if () {..
three = true;
} else {
three = false;
}
return three;
}
$('#submitButton').click(function () {
var returnVal = true;
returnVal1 = fn1();
returnVal2 = fn2();
returnVal3 = fn3();
if (returnVal1 && returnVal2 && returnVal3) {
returnVal = true;
} else {
returnVal = false;
}
return returnVal;
});
我可以将returnVal1
用于所有函数返回,而不是像returnVal2
,returnVal3
和returnVal
这样的众多变量吗?
我可以为所有函数返回使用单个变量吗?
由于
答案 0 :(得分:4)
您可以将所有变量放在一起,只需在if
子句中调用验证函数:
$('#submitButton').click(function () {
if ( first() && second() && third() ) {
return true;
} else {
return false;
}
});
@FishBasketGordo建议或更短,如果返回值是你唯一需要的东西:
$('#submitButton').click(function () {
return first() && second() && third();
});
如果验证计算量很大,这也可以节省一些时间,因为if
- 子句被懒散地评估。
答案 1 :(得分:1)
您可以使用以下代码替换最后一个函数
$('#submitButton').click(function(){
return (first() && second() && third());
});
答案 2 :(得分:1)
是的,你可以,但如果你想要一个单一的结束变量来确定是否有任何一个失败,那么我建议这样做:
var isValid = first();
if(!second())
isValid = false;
if(!three())
isValid = false;
这样,您最终不会重置带有后续结果的无效标志。
这样做的好处是,如果你有很多验证函数,你可以将它们放入一个数组并编写更少的代码......
var validators = [first, second, three];//etc..
var isValid = true;
for(var i = 0; i < validators.length; i++){
if(!validators[i]()){
isValid = false;
break;
}
}
//do something with isValid
或者,如果您有专门的“验证所有”功能......
var validators = [first, second, three];
function validateAll(){
for(var i = 0; i < validators.length; i++){
if(!validators[i]()){
return false;
}
}
return true;
}
答案 3 :(得分:1)
如果您的returnValues是要组合的基元,您可以轻松地组合它们的分配。在您的代码段中,如果您愿意,可以按如下所示编写:
$('#submitButton').click(function () {
var returnVal = first() && second() && third();
return !!returnVal; //ensure boolean is returned
});
答案 4 :(得分:0)
function validateFunction(){
var result;
// First Function Condition\
if(First Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
// Second Function Condition
if(Second Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
// Third Function Condition
if(Third Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
}
}
function checkTruFalse(result)
{
if (result == false ){ alert('ERROR'); break; }
}
$('#submitButton').click(function(){ validateFunction(); });
根据情况,您可以在checkTruFalse函数内传递另一个变量来设置有关特定错误的警报消息。
function checkTruFalse(result, message ){
alert('ERROR :: '+message);
}
checkTruFalse( result, 'Invalid Input for Numeric Value');