并不是所有的验证检查都在提交时执行

Not all validation checks execute onsubmit.

本文关键字:提交 执行 检查 验证 并不是      更新时间:2023-09-26

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

    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;
    }
}

如果验证通过,所有函数都需要返回一个值。然而,一旦一个函数返回false或假值,验证过程将停止。这是因为&&运算符使用了短路求值。

基本上,如果validateTitle()失败,其余的函数将不会执行。