您的位置:首页 > Web前端 > JavaScript

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

2015-08-15 15:12 711 查看
转载地址:http://blog.csdn.net/badyflf/article/details/8121483,作者是个很刨根问底的人

[javascript] view
plaincopy

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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: