
提交表单,为什么javascript没有检查输入内容就提交了
网页中的表单少不了要检查用户输入内容,检查自然由 javascript 来完成;但某些时候,明明写了检查表单的 javascript 代码并且调用了,但没有检查或者仅检查了几项就提交了,有些项根本没有检查,也就是不符合要求也正常提交了,检查的 javascript代码形同虚设,为什么会出现这种情况?
正常情况下,在 javascript 代码中,如果输入全符合要求,则返回“真”,也就是通过检查,从而提交表单;如果有一项不符合要求,则返回“假”,要求用户重新输入。一般来说,javascript没有检查输入的全部内容,表单就提交了,是 javascript 代码有错误的缘故;当提交表单时,javascript 开始一项一项的检查用户输入内容,如果检查前几项的代码没有问题,则会正常检查,继续往下检查时突然遇到了代码有问题,则 javascript 会立即终止代码执行返回,它并没有返回“假”,所以提交表单了,这也是前几项能正常检查,后面的没有检查就提交了的原因。
举例(提交表单,为什么javascript没有检查输入内容就提交了)
html代码:
<form method="get" action="test.htm">
<ul class="ul">
<li>昵称:<input type="text" id="inNi" maxlength="30" /></li>
<li>密码:<input type="password" id="inPwd" maxlength="30" /></li>
<li>姓名:<input type="text" id="inName" maxlength="30" /></li>
<li><input type="submit" id="inSub" value=" 提 交 " onclick="return checkInput()" /><span id="msg"></span></li>
</ul>
</form>
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 代码:
<script type="text/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;
}
</script>
以上 javascript 代码执行到检查“姓名”时有误,即 if (yName == "") 有误,则立即终止执行,最后一项没有检查,表单就被提交。
-
相关阅读
- javascript设置html元素属性(setAttribute)与
- javascript获取、设置修改img的src属性(get/setAt
- javascript 多维数组定义、添加、删除和排序元素(js
- js提交表单二三例
- javascript删除前弹出确认/取消询问窗口conf
- ie地址栏执行javascript命令及无法执行的解决
- 2.28 Word 2016 样式检查器,显示格式
- 注释html和javascript代码的符号及方法
- 网页载入后,为元素(div、img、text、button)动
- asp.net刷新不重复提交表单的最简单有效方法
- 清空网页表单的所有text文本框(select选择框)的两
- 取消或开启Word拼写检查和语法(去掉红波浪线)