当js中出现 a() is not a function

时间:2021-11-07 17:02:48

转载地址:http://blog.csdn.net/badyflf/article/details/8121483,作者是个很刨根问底的人

[javascript] view plaincopy
  1. js脚本拿出来和<input/>测试是正确的:  
  2.   
  3. <script src="../js/jquery-1.4.3.js"></script>  
  4. <script>  
  5.   function email(){    
  6.          alert("====");  
  7.      }  
  8. </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()