转载地址:http://blog.csdn.net/badyflf/article/details/8121483,作者是个很刨根问底的人
- js脚本拿出来和<input/>测试是正确的:
- <script src="../js/jquery-1.4.3.js"></script>
- <script>
- function email(){
- alert("====");
- }
- </script>
但火狐的错误控制台却报异常:
email() is not a function
明明是一个函数,但火狐控制台真J。。
由于JSP文件是别人写好直接使用的,所以,来回测试,折腾!最后,没办法,一段一段代码删除测试,才发现。有form和没form的情况下有区别!
一、将<input name="email" type="text" id="txtEmail" class="text_input" onblur="emailFunc()"/>
定义在Form标签里,则有异常,没输出"===="
二、去掉form标签,无异常,有输出"===="
可是为什么呢? input标签是必须要在form标签里定义使用的,折腾,继续折腾,有网也不百度,折腾了1个多小时,只好百度看看有没有方法。
找到了一个方法:
http://hi.baidu.com/shuaixiaoxin/item/df3d15383d4c8a8ef5e4ad97
内容是:
.在表单中元素的name和id属性中有设置为和此元素调用js方法的方法名相同时,也会报这种js错误
让js中的function名和表单form中的input的name值不同否则容易出错
也就是在有form和没有form会出现js错误
看一回,没看明白,再看,原来是指:
在form标签里,若<input>标签定义的事件js函数名称-email() 和 name / id对应的属性值一致时,会报这种js错误
解决:
将js的函数名称email()变更为:emailFunc()