javascript返回值第2部分

时间:2011-02-04 15:29:07

标签: javascript function return-value

昨天得到了一些很好的帮助,并有一个后续问题/问题。关于HTML表单,当用户单击onSubmit =“return outer()”时,函数“outer”仅返回其中一个函数(checkname或checkpostal)。如何检查这两个功能? Noob问题我很确定,但我想理解,而不仅仅是从那里过多的表格复制粘贴。

var postalconfig = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;

function outer() {
    function checkname(f_name) {
        if (document.myform.f_name.value == "") {
            alert("Enter your First Name");
            return false;
        } else {
            alert("valid First Name");
            return true;
        }
    }
    return checkname();

    function checkpostal(postal_code) {
        if (postalconfig.test(document.myform.postal_code.value)) {
            alert("VALID postal");
            return true;
        } else {
            alert("INVALID postal");
            return false;
        }
    }
    return checkpostal();
} //end of outer

HTML:

<form name="myform" action="index.php" onSubmit="return outer();" method="post">
  First Name
  <input name="f_name"  type="text" />
  <br />
  Telephone
  <input name="telephone" type="text" />
  <br />
   <input name="Submit" type="submit"  value="Submit Form" >
</form>

4 个答案:

答案 0 :(得分:3)

返回时,函数outer()的执行会停止。

尝试这个单一的return语句:

return  checkname() && checkpostal();

答案 1 :(得分:2)

当您写return checkname();时,您的功能会立即停止 无法返回值,然后运行函数的其余部分。

相反,您需要调用两个内部函数,然后使用逻辑运算符将它们组合成一个布尔值 例如:

return checkname() && checkpostal();

答案 2 :(得分:0)

只是做一些事情或者回报或者最后做。

return checkName()&amp;&amp; checkPostal();

答案 3 :(得分:0)

您所做的事情在技术上是有效的,但我可以建议您单独定义这些功能。使用外部只是为了调用它们并检查它们的值,所以你有:

function outer(){   
    return (checkname() && checkpostal());
}

function checkname(){
    // Code for checkname
}

function checkpostal(){
    // Code for checkpostal
}