ハマっている「お菓子」を教えて!

非常に困っています!よろしくお願いいたします。

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

A 回答 (2件)

本筋的には、予約語はつかわない・・・。


というのが正解かと。

submitにしたって、たとえばtextやhiddenにsubmitという名前を
使うと、form1.submit()としても、サブミットしてくれなくなります。
結局javascriptということもありユーザー環境に著しく依存して
しまうので、はまるようなソースを書くことは自らの首をしめるだけです。
    • good
    • 0

属性値の取得にはgetAttributeというメソッドがあるので


alert(document.getElementsByName('form1')[0].getAttribute('action'));
と、すればactionってオブジェクトが別に存在してもformのaction属性の値が取れるはず、で、普通のブラウザは実際問題ないんだけど
IEだけはgetAttributeの実装もさぼっているので結局
actionオブジェクトを取得しちゃう。

IEを恨みながら紛らわしいオブジェクト
<input type="hidden" name="action" value="test">
のnameを変えるとかではダメですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!