我正在学习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> ....
验证函数有效。当所有字段都被验证并且我'提交'时,逻辑会通过'else {alert(fail);返回false}'给我一个'未定义'消息-不知道为什么。如果我提供的信息不充分,请告诉我。我在网上找不到答案。谢谢。
您的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
,因为undefined
不等于''
,这就是为什么您的其他条件得到满足。由于fail
中有undefined
值,因此您将获得undefined