js関数名とフォーム要素の同名の衝突の問題


今日はExcelをエクスポートする時にFormフォームのinput hiddenを使ってエクスポートと検索を区別します。スタート時のjsのオンクレックイベントの関数名は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.0MSIE 8.0Windows NT 5.1Trident/4.0CIBA;NET CLR 2.2.5.0727)タイムスタンプ:Thu、27 Jan 2011年13:30:09 UTC
メッセージ:オブジェクトはこの属性または方法行をサポートしていません。17文字:1コード:0 URI:file:///C:/Documents%20and%20Settings/Administrator/デスクトップ/test.