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 ![]() DomElement没有.value属性,你用.value 的时候应该是exception 了 |
![]() | 2 iyangyuan 2015-01-11 19:25:50 +08:00 ![]() 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之后就可以了. |