Javascript Don';我不知道为什么我会收到警报';未定义';消息
我正在学习PHP,JavaScript。下面的代码来自我正在使用的一本教科书Javascript Don';我不知道为什么我会收到警报';未定义';消息,javascript,Javascript,我正在学习PHP,JavaScript。下面的代码来自我正在使用的一本教科书 <script> function validate(form) { fail = validateForename(form.forename.value) fail += validateSurname(form.surname.value) fail += validateUsername(form.username.value) fail += valida
<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> ....
函数验证(表单)
{
fail=validateForename(form.forename.value)
fail+=validateSurname(form.namite.value)
fail+=validateUsername(form.username.value)
fail+=validatePassword(form.password.value)
fail+=validateAge(form.age.value)
fail+=validateEmail(form.email.value)
如果(fail==“”)返回true
else{alert(fail);return false}
}
报名表
名字。。。。
验证函数可以工作。当所有字段都被验证并且我“提交”时,逻辑会变成“else{alert(fail);return false}”,给我一条“undefined”消息——不知道为什么。如果我提供的信息不足,请告诉我。我在网上找不到答案。谢谢 您的
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==”,则为值
永远不会是真的
,因为未定义的
不等于'
,这就是您的else条件得到满足的原因。由于fail
中存在undefined
值,您将收到undefined
请正确设置代码格式在函数开始时定义
fail=''
,因为alert(undefined='')
将返回false
其他函数是如何定义的?它们可以返回哪些可能的值以分配或添加到fail
?它们是否在所有情况下都返回一个值?最有可能的情况是,您的验证函数之一返回了未定义的值,我通过注释掉代码的“警报”部分进行了欺骗,它工作正常。然而,这不是一个解决办法。明天我会试试你的建议。现在是凌晨1点45分。感谢所有帮助过我的人。约翰德