アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTML部で
<FORM NAME="frm1" METHOD="post" ACTION="xxx.html">
 <INPUT TYPE="hidden" NAME="txt1">
</FORM>

javascriptで
document.frm1.txt1.value = "hoge";
document.frm1.submit();

のように記述しています。
FireFoxブラウザでは期待通りの動きをするのですが、
IE6では「document.frm1.txt1はNullまたはオブジェクトではありません」
とエラーが出てしまい、画面遷移しません。

因みにページはフレームを利用しており、
フォームや画面遷移はメインフレームでしか使っていないので、
フレーム名も特につけておりませんし、
targetの記述も使用しておりません。
そこらへんに原因があるのでしょうか。
それにしてもFireFoxでは可、IEではエラー
というのも解せないです。

どなたか分かる方いらっしゃいましたら
ご教示願います。

A 回答 (2件)

>document.frm1


alert(document.frm1);
これが何と出るか。
場合によってはこれも「document.forms[x];」系にしてみる

あと一応確認しておくけど
function(){}
じゃない限りはHTML上に書かれた順に実装される事になってる。
まさかformが現れる前に実行させてないよね?

この回答への補足

>まさかformが現れる前に実行させてないよね?
それは大丈夫です、以前何度か悩まされました

核心に近づいてきました。
ソース内にフォームは4つありまして、
name指定でもforms配列指定でもお目当てのフォーム(2個目のフォーム)
のみが認識されていない。
1個目のフォーム(ソースがやたら長い)のどこかに不備があり、
1個目のフォームの閉じタグが無効になっているのかもしれません。
これから犬の散歩後、じっくり見直してみます。

もし↑の原因だったら技術内容でなくケアレスミスで
つきあわせてしまって申し訳ないです。
また後でお礼欄より連絡させていただきます。

補足日時:2007/02/27 17:08
    • good
    • 4
この回答へのお礼

解決しました。
“>”が一つ抜けてるところがありました。。
forms[n]
elements[n]
参考になりました。
今までnameでしか操作したことなかったので。
ありがとうございました。

お礼日時:2007/02/27 18:39

name名ではなく elements[x] での参照を試みる


http://www.tohoho-web.com/js/form.htm

この回答への補足

深夜にご回答本当に有難うございます。
document.frm1.elements[0].value = "hoge"; や
alert(document.frm1.element.length); 等
試してみましたが
【document.frm1.elementsはNullまたは・・・】
【document.frm1.elementはNullまたは・・・】
とやはりエラーになってしまいました。。

補足日時:2007/02/27 02:52
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています