• ベストアンサー

document.allはネスケでは使えない?

下記だとIEでもネスケでも動くのですが、 document.Myform.email.value; 下記だとネスケで動きません。 document.all.email.value; 何かいい方法はないでしょうか・・。 function checkMailAddress() { fOBJ = document.main.email.value; check = /.+@.+\..+/; if (!fOBJ.match(check)) alert("メールアドレスが正しくありません"); }

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

  • ベストアンサー
noname#227796
noname#227796
回答No.1

document.allはIE拡張なのでネスケでは有効ではありません。 レイヤの操作の場合なら、ネスケの方は、代わりにdocument.layersを使えますが、この場合は意味はないでしょう。 document.allでなければならない、何か理由があるのでしょうか? 対応方法はわかっているのですから、それでいけば良いと思います。 できるだけ、IEとネスケで共通の処理で済ませた方が良いですから。 フォームに「Myform」という名前を使いたくないだけなら、他の方法もありますが。(document.forms[0]で指定するとか)

s-holmes
質問者

お礼

>document.allはIE拡張なので そういうことなのですね。その辺の情報の入れ方がまだ要領を得なくて・・。 勉強になりました。今やれる方法で試してみます。

その他の回答 (2)

noname#45976
noname#45976
回答No.3

下の投稿、失礼しました。^^; IE4以降のダイナミックHTMLなのね、、、 確かにネスケでは使えません。>< ブラウザを固定にしたくないなら、初歩的な記述(フォーム名指定にするとか)に変更するのがいいかも。^^

s-holmes
質問者

お礼

回答ありがとうございました。 >初歩的な記述(フォーム名指定にするとか)に変更する とりあえず、その手で対応することにしました。

noname#45976
noname#45976
回答No.2

>下記だとIEでもネスケでも動くのですが、 >document.Myform.email.value; >下記だとネスケで動きません。 >document.all.email.value; うーん、全体的なソースが不明なので何とも言えませんが、、、 「Myform」とか「all」の部分はチェックしたいフォームのフォーム名になるのはご存知ですよね。 単にフォーム名が「all」になってない、、、のではないでしょうか?^^; フォーム名、allにしても動くはずですので、フォームタグに<FORM name="all" ....>のようなネーム属性が指定されているかどうか確認してみてください。 ところで、 >fOBJ = document.main.email.value; の部分のフォーム名も違うもののようですが、その辺の統一は大丈夫でしょうか?^^; このチェックを使う場合、フォーム名を「all」にするならと「fOBJ = document.all.email.value; 」に変更しなければなりません。 見当違いの回答をしていたらごめんなさい。>< もっと違う意味の質問かしら、、、^^;

関連するQ&A