document.getElementsByName('form')[0].onsubmit = function(){
var input = document.getElementsByClassName('Input');
for (var i = 0; i <= input.length; i++) {
if(!input[i].value){
document.getElementsByClassName('error')[i].style.visibility = "visible";
}
};
return false;
}
只要在代码中加入 input[i].value
就没法阻止提交
去掉.value 像 input[i]
这样就可以阻止提交事件
求大牛分析一下......为什么获取value值会影响到return false
求解决办法!
1
sumhat 2015-01-11 18:57:31 +08:00 via Android 1
DomElement没有.value属性,你用.value 的时候应该是exception 了
|
2
iyangyuan 2015-01-11 19:25:50 +08:00 1
for (var i = 0; i <= input.length; i++) 这里应该是i < input.length。你写<=,input[i]肯定会undefined,然后读取.value属性异常,return false当然失效了。
|
5
jidixuelang 2015-01-11 23:13:23 +08:00
没有任何调试信息的吧!
|
6
thinkmore 2015-01-12 09:35:30 +08:00
建议你查一下JavaScriptAPI,就大家说的value那里有点问题,我记得好像是nodeValue吧!查API吧,或者console.info(input[i].value)(火狐有效)试一试
|
7
leonlu 2015-01-12 10:10:44 +08:00
建议先学一下chrome调试相关的文章.
浏览器提供的api绝大部分情况下是不会出问题的, 绝大部分问题都是因为自己的代码写的不对. 要定位问题, 而不是乱猜问题. "咦? 好像这是里错了吧....这样写一下就应该对了吧..."是程序员最不应该犯的错误. |
9
lvfujun OP 已解决感谢各位.exception之后就可以了.
|