网页中的表单少不了要检查用户输入内容,检查自然由 javascript 来完成;但某些时候,明明写了检查表单的 javascript 代码并且调用了,但没有检查或者仅检查了几项就提交了,有些项根本没有检查,也就是不符合要求也正常提交了,检查的 javascript代码形同虚设,为什么会出现这种情况?
正常情况下,在 javascript 代码中,如果输入全符合要求,则返回“真”,也就是通过检查,从而提交表单;如果有一项不符合要求,则返回“假”,要求用户重新输入。一般来说,javascript没有检查输入的全部内容,表单就提交了,是 javascript 代码有错误的缘故;当提交表单时,javascript 开始一项一项的检查用户输入内容,如果检查前几项的代码没有问题,则会正常检查,继续往下检查时突然遇到了代码有问题,则 javascript 会立即终止代码执行返回,它并没有返回“假”,所以提交表单了,这也是前几项能正常检查,后面的没有检查就提交了的原因。
举例(提交表单,为什么javascript没有检查输入内容就提交了)
html代码:
- 昵称:
- 密码:
- 姓名:
CSS代码:
.ul{margin:10px 0px; position:relative; border:1px solid #787878; width:350px; height:160px; line-height:30px;}
.ul li{margin:6px 0 0 10px;}
javascript 代码:
function checkInput() {
var ni = document.getElementById("inNi"), pwd = document.getElementById("inPwd"), yName = document.getElementById("inName"),msg = document.getElementById("msg");
if (ni.value == "") {msg.innerHTML = "昵称不能为空!"; return false; }
if (pwd.value == "") { msg.innerHTML = "密码不能为空!"; return false; }
if (yName == "") { msg.innerHTML = "姓名不能为空!"; return false; }
return true;
}
以上 javascript 代码执行到检查“姓名”时有误,即 if (yName == "") 有误,则立即终止执行,最后一项没有检查,表单就被提交。