请问这段js程序,检查输入是否非空,为什么没起作用?JScript codescript typetext/javascriptfunction
请问这段js程序,检查输入是否非空,为什么没起作用?
- JScript code
<script type="text/javascript"> function check(){ var x=document.getElementsByName("username").value; if(x==null || x==""){ alert("Please input username"); return false; } } </script></head> <body> <form action="js.php" method="POST" onsubmit="return check()"> <input type="text" name="username"></input> <input type="submit" name="sub"></input> </form> </body>[解决办法]
因为getElementsByName返回的是集合(哪怕只有一个元素),是无法直接用.value的
这样就可以了
var x = document.getElementsByName("username")[0].value;
[解决办法]
function check(){
var x=document.getElementsByName("username");//x结果是数组
for(i=0;i<x.length;i++){
if(x[i].value==null || x[i].value==""){
alert("Please input username");
return false;
}
}
}
[解决办法]
Form 对象的 onsubmit 属性指定了一个事件句柄函数。当用户单击了表单中的 Reset 按钮而提交一个重置时,就会调用这个事件句柄函数。注意,当调用方法Form.submit() 时,该处理器函数不会被调用。
注意后面那句调用方法Form.submit() 时,该处理器函数不会被调用。
根据你的代码,在button中调用form.submit(),这个时候是不会触发form的onsubmit事件的。
以下随便取一
1.把button的type改为submit,不要显示调用form.submit()
2.显示调用form.submit(),在提交前验证form
[解决办法]
- JScript code
var ctrip = document.getElememntsByName("optctr_ip")[0].value; 