JavaScript表单验证错误未打印
JavaScript form validation error not printing
我使用以下代码来验证一个表单,并希望在出现错误时在字段下方显示错误:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.errorcss {
background-color: yellow;
color:red;
}
</style>
<script type="text/javascript">
error=" ";
function isBlank(s) {
var len=s.length
var i
for(i=0; i<len; ++i) {
if(s.charAt(i) != " ") return false
}
return true
}
function validate(fieldName, fieldValue) {
if(isBlank(fieldValue)) {
error = fieldName + " cannot be left blank.";
alert(fieldName+" cannot be left blank.")
return false
}
return true
}
function validatePass(passwordValue, confirmPasswordValue) {
if (passwordValue !== confirmPasswordValue) {
alert("Password and Confirm Password do not match")
return false
}
return true
}
function validateForm() {
if(!validate("The last name field", document.contest.last.value))
return false
if(!validate("The email field", document.contest.email.value))
return false
if(!validate("The password field", document.contest.pass.value))
return false
if(!validatePass(document.contest.pass.value, document.contest.repass.value))
return false
if(!validate("The description field", document.contest.desc.value))
return false
}
</script>
</head>
<body>
<form name="contest" onSubmit = "return validateForm()" method="GET">
<h2 align="center">Sign Up Form</h2>
<p>
*Last Name:<input type="text" name="last" size="16">
First Name:<input type="text" name="first" size="12">
Middle Initial:<input type="text" name="initial" size="2">
</p>
<div class="errorcss">
<script type="text/javascript">document.write(error);</script>
</div>
<p>
*E-mail Address:<input type="email" name="email">
*Password:<input type="password" size="10" name="pass">
*Confirm Password:<input type="password" size = "10" name="repass">
</p>
<p>
In 50 words or less, describe yourself:
</p>
<textarea name="desc" ROWS="5" COLS="40"></textarea>
<p>
Submit your form:<input type="SUBMIT" value="Submit my form">
</p>
</form>
</body>
</html>
我面临的问题是,我希望没有姓氏错误显示在div与errorcss类。但它没有显示它。此外,我想知道如何显示所有的错误,每当他们使用JavaScript和CSS发生。
我添加了15个分号,删除了错误div内的脚本,给errordiv一个id ('errordiv'),并添加:
document.getElementById('errordiv').innerText=error;
函数validateForm();
.
<!DOCTYPE html>
<html >
<head >
<style type="text/css" >
.errorcss {
background-color : yellow;
color : red;
}
</style >
<script type="text/javascript" >
error = " ";
function isBlank( s )
{
var len = s.length;
var i;
for ( i = 0; i < len; ++i ) {
if ( s.charAt( i ) != " " ) return false;
}
return true;
}
function validate( fieldName, fieldValue )
{
if ( isBlank( fieldValue ) ) {
error = fieldName + " cannot be left blank.";
alert( fieldName + " cannot be left blank." );
return false;
}
return true;
}
function validatePass( passwordValue, confirmPasswordValue )
{
if ( passwordValue !== confirmPasswordValue ) {
alert( "Password and Confirm Password do not match" );
return false;
}
return true;
}
function validateForm()
{
if ( !validate( "The last name field", document.contest.last.value ) ) {
document.getElementById( 'errordiv' ).innerText = error;
return false;
}
if ( !validate( "The email field", document.contest.email.value ) ) {
return false;
}
if ( !validate( "The password field", document.contest.pass.value ) ) {
return false;
}
if ( !validatePass( document.contest.pass.value, document.contest.repass.value ) ) {
return false;
}
if ( !validate( "The description field", document.contest.desc.value ) ) {
return false;
}
}
</script >
</head >
<body >
<form name="contest" onSubmit="return validateForm()" method="GET" >
<h2 align="center" >Sign Up Form</h2 >
<p >
*Last Name:<input type="text" name="last" size="16" > First Name:<input type="text" name="first" size="12" > Middle Initial:<input type="text" name="initial" size="2" >
</p >
<div class="errorcss" id="errordiv" >
</div >
<p >
*E-mail Address:<input type="email" name="email" > *Password:<input type="password" size="10" name="pass" > *Confirm Password:<input type="password" size="10" name="repass" >
</p >
<p >
In 50 words or less, describe yourself:
</p >
<textarea name="desc" ROWS="5" COLS="40" ></textarea >
<p >
Submit your form:<input type="SUBMIT" value="Submit my form" >
</p >
</form >
</body >
有很多问题,其中之一是:
<div class="errorcss">
<script type="text/javascript">
document.write(error);//code fails on page load
</script>
</div>
看这里:
function isBlank(s) {
return 0 === s.replace(/'s/g, '').length;
}
function validate(fieldName, fieldValue) {
if (isBlank(fieldValue)) {
alert(fieldName + " cannot be left blank.")
return false
}
return true
}
function validatePass(passwordValue, confirmPasswordValue) {
if (passwordValue !== confirmPasswordValue) {
alert("Password and Confirm Password do not match")
return false
}
return true
}
function validateForm() {
if (!validate("The last name field", document.contest.last.value))
return false
if (!validate("The email field", document.contest.email.value))
return false
if (!validate("The password field", document.contest.pass.value))
return false
if (!validatePass(document.contest.pass.value, document.contest.repass.value))
return false
if (!validate("The description field", document.contest.desc.value))
return false
}
<form name="contest" onSubmit="return validateForm()" method="GET">
<h2 align="center">Sign Up Form</h2>
*Last Name:
<input type="text" name="last" size="16">
<br/>First Name:
<input type="text" name="first" size="12">
<br/>Middle Initial:
<input type="text" name="initial" size="2">
<br/>*E-mail Address:
<input type="email" name="email">
<br/>*Password:
<input type="password" size="10" name="pass">
<br/>*Confirm Password:
<input type="password" size="10" name="repass">
<br/>In 50 words or less, describe yourself:
<textarea name="desc" ROWS="5" COLS="40"></textarea>
<br/>Submit your form:
<input type="SUBMIT" value="Submit my form">
</form>
相关文章:
- 尝试使用.ninnerHTMLlog打印数据,获取错误Uncaught TypeError:undefined不是函数
- 无法使用JavaScript打印带有for循环的验证错误
- 如何在代码编辑器中打印致命错误
- ajax方法返回错误时如何打印输出
- 使用Javascript打印HTML:未定义错误
- CSSLint:如何配置任务只是打印错误而不是警告
- 在自定义控制台中打印javascript错误
- 错误-权限被拒绝-jQuery打印预览
- 返回 false 不会停止刷新页面,并且不打印错误消息
- 节点断言错误未打印,断言以静默方式失败
- 我无法在 JavaScript 中获取要打印到文本区域的属性值,我收到一个错误:未捕获的类型错误:无法读取 null 的
- 在 JavaScript alert() 中打印 EL 字符串 “RP” 会导致 JS 错误“'RP'
- HTML5 打印矩形数组错误
- 使用 setInterval 逐个打印数字,我得到未捕获的引用错误
- 为什么我'我无法在AJAX响应中打印错误消息
- Javascript:拖放图片上传:打印错误信息
- 脚本不打印错误在JavaScript Chrome控制台
- 在带有过滤器的画布中打印错误
- 月值总是打印错误
- 对象标记中的数据属性导致打印错误