不知道为什么我会收到警报! '未定义'信息

时间:2015-09-27 04:55:00

标签: javascript

我正在学习PHP,JavaScript。接下来的代码来自我正在使用的教科书。

<script>
function validate(form)
    {
    fail  = validateForename(form.forename.value)
    fail += validateSurname(form.surname.value)
    fail += validateUsername(form.username.value)
    fail += validatePassword(form.password.value)
    fail += validateAge(form.age.value)
    fail += validateEmail(form.email.value)

    if   (fail == "") return true
    else { alert(fail); return false } 
    }
<body>

<table border="0" cellpadding="2" cellspacing="5" bgcolor="#eeeeee">
    <th colspan="2" align="center">Signup Form</th>
    <form method="post" action="adduser387.php" onSubmit="return      validate(this)">
<tr><td>Forename</td> ....

验证功能有效。当所有字段都经过验证并且我提交后,逻辑就会落到其他{alert(fail);返回false}&#39;给我一个未定义的&#39;消息 - 不知道为什么。如果我提供的信息不足,请告诉我。我在互联网上找不到答案。谢谢。

1 个答案:

答案 0 :(得分:0)

您的js功能必须如下:

function validate(form) {
        var fail = '';
        fail += validateForename(form.forename.value);
        fail += validateSurname(form.surname.value);
        fail += validateUsername(form.username.value);
        fail += validatePassword(form.password.value);
        fail += validateAge(form.age.value);
        fail += validateEmail(form.email.value);

        if (fail == "") {
            return true;
        }
        else {
            alert(fail);
            return false
        }
    }
  

您的脚本问题fail未在任何地方定义,因此其值为undefined(不考虑您提交的验证函数的返回值),因此fail == ""永远不会true的值1}}因为undefined不等于'',这就是为什么你的其他条件得到满足的原因。由于undefined中的值为fail,因此您会收到警告undefined