-3

下面的函数验证我的表单,其中每个变量调用一个函数以确保该字段已被填写。如果该字段未填写,则函数返回 FALSE,因此变量为 FALSE。我想知道如果所有变量都返回 TRUE,我怎样才能使这个函数返回 TRUE。

现在,由于最后一行,它每次都返回 FALSE。谢谢!

function validateform(){
        var namevalid = validatename();
        var entreevalid = validateentree();
        var fillingvalid = validatefilling();
        var ricevalid = validaterice();
        var beansvalid = validatebeans();
        var cheesevalid = validatecheese();

        return false;

}
4

5 回答 5

1
function validateform(){
        var namevalid    = validatename(),
            entreevalid  = validateentree(),
            fillingvalid = validatefilling(),
            ricevalid    = validaterice(),
            beansvalid   = validatebeans(),
            cheesevalid  = validatecheese();

        return (namevalid && entreevalid && fillingvalid && 
                ricevalid && beansvalid  && cheesevalid);
}
于 2013-04-10T19:27:57.090 回答
0

简单的。改变这个:

return false;

对此:

return (namevalid && entreevalid && fillingvalid && ricevalid && beansvalid && cheesevalid);
于 2013-04-10T19:29:07.813 回答
0

比为每次检查创建变量更简洁的版本:

function validateform(){
        return (validatename() && validateentree() && validatefilling() 
               && validaterice() && validatebeans() && validatecheese());
}
于 2013-04-10T19:30:13.613 回答
0

您可以完全摆脱局部变量:

function validateform() {
    return validatename() && validateentree() &&
           validatefilling() && validaterice() &&
           validatebeans() && validatecheese();
}

好处是如果previous返回false则不会调用后续函数,因此整个代码更加优化。

于 2013-04-10T19:31:37.697 回答
0

一个简短的版本:

return (validatename() && validateentree() && validatefilling() && 
        validaterice() && validatebeans() && validatecheese());
于 2013-04-10T19:35:53.713 回答