- ベストアンサー
Formの「action」属性を取得したいけれども「action」という名のオブジェクトが存在している
非常に困っています!よろしくお願いいたします。 以下のように「action」という名前のオブジェクトがあります。 <form name="form1" method="post" action="hoge.htm"> <input type="hidden" name="action" value="test"> <input type="submit" name="submit" value="OK"> </form> javascriptでaction属性「hoge.htm」を取得したいのです。そのため以下のようにコーディングしました。 alert(document.form1.action); 結果は「object」と表示されます。どうやらactionオブジェクトを対象としてしまうらしいのです。 action属性を取得する方法をお教えいただけないでしょうか。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
本筋的には、予約語はつかわない・・・。 というのが正解かと。 submitにしたって、たとえばtextやhiddenにsubmitという名前を 使うと、form1.submit()としても、サブミットしてくれなくなります。 結局javascriptということもありユーザー環境に著しく依存して しまうので、はまるようなソースを書くことは自らの首をしめるだけです。
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
属性値の取得にはgetAttributeというメソッドがあるので alert(document.getElementsByName('form1')[0].getAttribute('action')); と、すればactionってオブジェクトが別に存在してもformのaction属性の値が取れるはず、で、普通のブラウザは実際問題ないんだけど IEだけはgetAttributeの実装もさぼっているので結局 actionオブジェクトを取得しちゃう。 IEを恨みながら紛らわしいオブジェクト <input type="hidden" name="action" value="test"> のnameを変えるとかではダメですか?