感谢先进的任何帮助。我只是一个JS和PHP的初学者,而这个问题我无法解决这个问题。
我的问题..如果我删除了最后一个连接
//fail += validateEmail(form.email.value);
表单会显示警告,包含所有相应的消息并阻止表单提交。 当重新添加该行时,无论函数具有什么功能,它都会自动转到下一页而不显示任何警告,几乎就像验证不存在一样。
警报中的行数是否有限制?我认为如果是这样的话就会截断,而不是完全跳过代码。我一直把头发拉出来。任何帮助,将不胜感激。
这是代码。它全部在一个名为validateTest.html的html页面上。
(第一次在这个网站上发帖,它删除了我所有的HTML代码uggh ..
这里只是javascript部分:
<script type="text/javascript">
function validateForm(form){
fail = validateFirstname(form.firstname.value);
fail += validateLastname(form.lastname.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;
}
}
function validateFirstname(field){
if(field == "") { return "No Firstname was given \n";
} else return "";
}
function validateLastname(field){
if(field == "") { return "No Lastname was given \n";
} else return "";
}
function validateUsername(field){
if (field == "") return "No Username was entered.\n";
else if (field.length < 5)
return "Usernames must be at least 5 characters.\n";
else if (/[^a-zA-Z0-9_-]/.test(field))
return "Only a-z, A-Z, 0-9, - and _ allowed in Usernames.\n";
return "";
}
function validatePassword(field){
if (field == "") return "No Password was entered.\n";
else if (field.length < 6)
return "Passwords must be at least 6 characters.\n";
else if (!/[a-z]/.test(field) || ! /[A-Z]/.test(field) ||
!/[0-9]/.test(field))
return "Passwords require one each of a-z, A-Z and 0-9.\n";
return "";
}
function validateAge(field){
if (isNaN(field)) return "No Age was entered.\n";
else if (field < 18 || field > 110)
return "Age must be between 18 and 110.\n";
return "";
}
function validateEmail(field){
if(field == "") { return "Nothing in the slot! \n";
}else
return "";
}
</script>
无法弄清楚如何显示html表单,因为我这样做会隐藏问题中的表单代码。使用代码块只显示html中的一行..烦人。
所以这里是表单发布行(已删除&#34;&lt;&gt;&#34;实际显示它): form method =&#34; post&#34;命名=&#34; myForm的&#34;行动=&#34; adduser.php&#34; onsubmit =&#34; return validateForm(this);&#34;
每个表单行都是这样做的: 输入类型=&#34;文字&#34; MAXLENGTH =&#34; 64&#34;名称=&#34;电子邮件&#34;&GT;