js函数名与form表单元素同名冲突怎么办

发布时间:2020-07-09编辑:脚本学堂
本文介绍了js函数名与form表单元素同名冲突的问题解决方法,有需要的朋友参考下。

导出excel时用了form表单的input hidden 来区分导出和搜索。
开始时js中的onclick事件的函数名 和 hidden 中的 id 命名一样。结果导致报错:调用函数的那一行对象不支持此属性。
找了很长时间都找不出原因,开始的时候一直以为是写错了某个字母,才发现js函数根本没有执行。后来没有办法直接调用了别的函数,发现就有用了,认为是函数名的原因,改了函数名才有用了。然后再将input中的id改成很函数名一样,又出现报错了。在没有下例验证之前,还一直以为是thinkphp模板解析的bug。

所以证实是js中的函数名不可以和元素中的id相同。

例子:
 

复制代码 代码示例:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>ceshi</title>
<script>
function a()
{
 document.getelementbyid('a').value="test";
 alert(document.getelementbyid('a').value);
 return false;
}
</script>
</head>
<body>
<form>
<input type="hidden" id="a" name="a" value="" />
<input type="button" value="excel" onclick="javascript:a();"/>
</form>
</body>
</html>

网页错误详细信息
用户代理: mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; ciba; .net clr 2.0.50727)
时间戳: thu, 27 jan 2011 13:30:09 utc
消息: 对象不支持此属性或方法
行: 17
字符: 1
代码: 0
uri: file:///c:/documents%20and%20settings/administrator/桌面/test.html