在html表单随便出入信息,都不会出现页面提示框,请问这是什么原因造成的?(PS:html页面和JS在同一个目录下放着呢)
页面代码如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>1-37.html - 使用JavaScript验证HTML表单数据</title>
<script language="JavaScript" src="1-38.js">
</script>
</head>
<body>
<h1>使用JavaScript验证HTML表单提交数据</h1>
<br />
<br />
<form id="fdate" name="fdate" method="post" action="" onsubmit="return checkForm()">
<table width="476" height="154" border="1" align="center" cellpadding="1" cellspacing="0">
<tr>
<td width="254"><div align="right">请输入数字(长度小于10):</div></td>
<td width="212"><label>
<input type="text" name="num" />
</label></td>
</tr>
<tr>
<td><div align="right">请输入英文字母:</div></td>
<td><label>
<input type="text" name="al" />
</label></td>
</tr>
<tr>
<td><div align="right">请做选择:</div></td>
<td><label>
<select name="lan">
<option value="">请做选择</option>
<option value="english">英语</option>
<option value="french">法语</option>
<option value="panish">西班牙语</option>
</select>
</label></td>
</tr>
<tr>
<td height="38" colspan="2"><label>
<input type="submit" name="Submit" value="提交" />
</label></td>
</tr>
</table>
</form>
</body>
</html>
JS代码如下:
function checkForm()
{
if(document.fdate.num.value==""
|| document.fdate.al.value==""
|| document.fdate.lan.value==""
) //验证表单域是否有空值
{
alert("表单每一项都必须填写"); //提示信息
return false;
}
if(document.fdate.num.value!="")//如果num文本框有值
{
var s = document.fdate.num.value;//获取num文本框的值
if(s.lenght > 9)
{
alert("第1个文本框字符串长度要小于10!");
return false;
}
for(var loc=0;loc<s.lenght;loc++) //循环判断值是否为数字
{
if((s.charAt(loc)<'0')||(s.charAt(loc)>'9'))
{
alert("第1个文本框只能输入数字!");
return false;
}
}
}
if(document.fdate.al.value!="")
{
var t = document.fdate.al.value;
for(var loc=0;loc<t.lenght;loc++;)
{
if(((t.charAt(loc)<'a')||(t.charAt(loc)>'z'))&&((t.charAt(loc)<'A')||(t.charAt(loc)>'Z')))
{
alert("第2个文本框只能输入英文字母!");
return false;
}
}
}
var v = document.fdate.lan.value;
var str = "您的填写和选择为:\r\n"+s+"\r\n"+t+"\r\n"+v;
alert (str);
}
js第35行多了一个; 去掉就可以了
感谢这位兄弟,检查的真仔细!