今日はExcelをエクスポートする際にFormの入力非表示を利用してエクスポートと検索を区別してみました。当初、jsのonClickイベントの関数名はhiddenのid名と同じになっています。その結果、「関数が呼び出された行のオブジェクトはこの属性をサポートしていません」というエラーが報告されます。
長い間検索しましたが、最初は文字が間違っているのかと思いましたが、js 関数がまったく実行されていないことがわかりました。その後、他の関数を直接呼び出すことができなくなり、関数名のせいだと思い、関数名を変更してから動作させました。次に、入力の ID を関数名と同じに変更すると、別のエラーが発生しました。次の例が検証されるまで、私はこれが ThinkPHP テンプレート解析のバグだと常に考えていました。以下の例により、js内の関数名と要素内のidを同じにすることはできないことが確認されています。
例えば:
次のようにコードをコピーします。
<html>
<頭>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>セシ</title>
<スクリプト>
関数a()
{
document.getElementById('a').value="テスト";
アラート(document.getElementById('a').value);
false を返します。
}
</script>
</head>
<本文>
<フォーム>
<input type="hidden" id="a" name="a" value="" />
<input type="button" value="excel" onClick="javascript:a();"/>
</form>
</body>
</html>
Web エラーの詳細
ユーザーエージェント: Mozilla/4.0 (互換性; MSIE 8.0; Windows NT 5.1; Trident/4.0; CIBA; .NET CLR 2.0.50727)
タイムスタンプ: 2011 年 1 月 27 日木曜日 13:30:09 UTC
メッセージ: オブジェクトはこのプロパティまたはメソッドをサポートしていません
行: 17
キャラクター: 1
コード: 0
URI: file:///C:/Documents%20and%20Settings/Administrator/Desktop/test.html