• ベストアンサー

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属性を取得する方法をお教えいただけないでしょうか。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

本筋的には、予約語はつかわない・・・。 というのが正解かと。 submitにしたって、たとえばtextやhiddenにsubmitという名前を 使うと、form1.submit()としても、サブミットしてくれなくなります。 結局javascriptということもありユーザー環境に著しく依存して しまうので、はまるようなソースを書くことは自らの首をしめるだけです。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

属性値の取得にはgetAttributeというメソッドがあるので alert(document.getElementsByName('form1')[0].getAttribute('action')); と、すればactionってオブジェクトが別に存在してもformのaction属性の値が取れるはず、で、普通のブラウザは実際問題ないんだけど IEだけはgetAttributeの実装もさぼっているので結局 actionオブジェクトを取得しちゃう。 IEを恨みながら紛らわしいオブジェクト <input type="hidden" name="action" value="test"> のnameを変えるとかではダメですか?

関連するQ&A