请问这段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;