デジタル・インフォメーション/デジタル・フォー・ミー [PC等のデジタル製品の疑問、トラブル解決に]
PC・デジタル製品の疑問、困ったことを検索。
:AND検索 :OR検索
【 [JavaScript]Firefoxでフォームが動かない 】
更新日時:2013年4月27日(土) 17:03:08
投稿日時:2013年4月23日(火) 1:41:09
このエントリーをはてなブックマークに追加

JavaScriptのフォーム処理ですが
IEとGoogle Chromeで動いたのに、Firefoxで動かないコトがあります。


フォーム名とフォームオブジェクト名を
指定するやり方はIEとChromeでは
動くがFirefoxでは動かないことがある。

例:
<form name="fm">
<select name="fm_sel">
<option value="hoge01">01
<option value="hoge02">02
</select>
</form>

という感じで、HTMLがある場合、
document.fm.fm_sel.selectedIndex という
感じで書くことが多いと思います。
この書式はFirefoxで動かないと思います。
IE、Chrome、Firefoxの3ブラウザ上で
動かそうと思えば、NAMEではなくIDを
使用しなければいけないようです。
(時代はすべてIDなのでしょうか。)

まず、各HTMLタグにidを付けます。
(先ほどの例を使用)
例:
<form name="fm">
<select name="fm_sel" id="fm_sel_id">
<option value="hoge01">01
<option value="hoge02">02
</select>
</form>

処理をしやすい(?)様に
var sel_id=document.getElementById("fm_sel_id");
として、valueやselectedIndexを取得したい場合は
sel_id.value、sel_id.selectedIndex
とすると、3つのブラウザで動きます。

さらにChromeで送信(submit)などを行う場合、
送信してもイナイのに、送信されたりすることがあります。
この場合はonClickかonSubmitに(どっちが正しいかはわかりませんw)
onClick="return false;" を書いてあげるとイイみたいです。
ちなみに、なんらかのアクションを先に実行したい場合は
onClick="hoge_Action();return false;"
(hoge_Action()はfunction関数とします)
なんて書くとイイみたいです。

formタグになんらかのアクションをかける場合は
formタグにIDをふってください。

IDはJavaScript以外に、CSSでも使用します。
さらにはjqueryでも重要。(#id_desuとかいう#を用いる記述)
classなど(.class_desuなどと.を用いる)も重要なので、
多少理解しておくと、かなり良いと思います。

JavaScriptではIDが重複するとエラーになっちゃうことがあるので
IDの管理はちゃんとしておきましょう。
特にfor文などでループをかけて、複数のIDを作る場合は
特に重複に気をつけましょう・・・。


}

【 Digital Information / Digital For Me】
Copyright (C) Gontaro-Systems. All Rights Reserved.