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
求解决办法!
|      1sumhat      2015-01-11 18:57:31 +08:00 via Android  1 DomElement没有.value属性,你用.value 的时候应该是exception 了 | 
|  |      2iyangyuan      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当然失效了。 | 
|  |      5jidixuelang      2015-01-11 23:13:23 +08:00 没有任何调试信息的吧! | 
|  |      6thinkmore      2015-01-12 09:35:30 +08:00 建议你查一下JavaScriptAPI,就大家说的value那里有点问题,我记得好像是nodeValue吧!查API吧,或者console.info(input[i].value)(火狐有效)试一试 | 
|  |      7leonlu      2015-01-12 10:10:44 +08:00 建议先学一下chrome调试相关的文章. 浏览器提供的api绝大部分情况下是不会出问题的, 绝大部分问题都是因为自己的代码写的不对. 要定位问题, 而不是乱猜问题. "咦? 好像这是里错了吧....这样写一下就应该对了吧..."是程序员最不应该犯的错误. | 
|  |      9lvfujun OP 已解决感谢各位.exception之后就可以了. |