并非所有验证检查都执行onsubmit。

时间:2013-05-16 23:01:42

标签: javascript forms function onsubmit

使用表单和javascript验证字段 这是我调用验证javascripts的代码,所有这些代码都在单独的文档中,但指定了文件路径。

    function validation()
    {
        return validateTitle()
            && validatefirstName()
            && validatesecondName()
            && validateAge()
            && validateEmail()
    }
    </script>
</head>
<body>
    <form name="subscribeForm" action="welcome.php" method="post" onsubmit="return validation();">

最后两个,validateAgevalidateEmail未执行 以下是每个javascript函数的代码:

function validateEmail()
{
    var x=document.getElementById('emailadd').value;
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length || x == null)
    {
        alert("Not a valid e-mail address");
        return false;
    }
}

function validateAge()
{
    var b=document.forms["subscribeForm"]["bday"].value;
    if (b==null || b=="" || b < 1 || b > 105)
    {
        alert("Age invalid.");
        return false;
    }
    else if (isNaN(b))
    {
        alert("Please enter a numeric value.");
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

如果验证通过,您的所有函数都需要返回一个thruty值。但是,只要一个函数返回false或falsey值,验证过程就会暂停。这是因为&&运算符使用short-circuit evaluation

基本上,如果validateTitle()失败,其余的功能将无法执行。