• 締切済み

FireFoxでのオブジェクト指定&取得

現在使用しているJavaScript使用フォームが、FireFoxで動作せず 解決に難渋しています。 (FireFoxのバージョンは3.5~です。) 仕様としては「チェックボックスにチェックを入れて、チェックを入れた 項目のみをURLエンコードして送信する」というものです。 (チェックを一つも入れていない場合は送信しません。) 以下がJavaScriptのソース部分になります。 function urlmaker(obj,chks){ var domain = ""; var agmgetter = ""; var chkname = ""; var url = ""; for(i=1;i<=chks;i++){ if (i < 10){ chkname = "seminar0" + i; }else{ chkname = "seminar" + i; } if (obj(chkname).checked){ agmgetter += "&" + chkname + "=" + encodeURL(obj(chkname).value); } } var dma1 = (obj.action).split("://"); var dma2 = dma1[1].split("/"); domain = dma2[0]; if (agmgetter != ""){ if (domain == "h20461.www2.hp.com"){ url = (obj.action) + "?preview=1" + agmgetter; }else{ url = (obj.action) + "?" + agmgetter.substr(1); } window.open(url,"_blank","resizable=yes"); } } 今までFireFoxで同様の問題は出ていなかったため、どこがおかしいのか まったく不明な状態です。 お分かりの方、ヒントだけでもよろしくお願いします。

みんなの回答

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ソースが不明なので、よくわかりませんが… objにformオブジェクト、chksがチェックボックスの数と仮定して、chknameはそのnameを作成しているのだと仮定すれば、単に  obj(chkname) で要素が取得できていないだけでは? というか… チェックボックスはもともとチェックが入っていなければ送信されない仕様になっていると思うので、わざわざscriptでやらなくても普通にターゲットを指定してsubmitすればすむことではないのでしょうか? 送信先によって「preview=1」を設定しているみたいですが、送信先が動的に変更されるのでもない限り、これもform内にhiddenで設定しておけば、スクリプト使う必要はないと思いますけれど?

okti_m131
質問者

補足

説明不足で申し訳ありません。 直接フォームをsubmitせずに、チェックを入れた項目の項目名とvalue値のみを引数として 別ウィンドゥで開くのは、発注元からの指示なもので。 結論としては、再度「複数チェックボックスの値取得」について調べたところ、 「getElementById」を使ったやりかたで解決しました。 ただ次は別の問題が発生していまして・・・。 value値をURLエンコードして送信しているのですが、何度やってみても 「&amp;#160;」という文字列が抜けません。 空白が文字化けしているのかと思い、空白を除けてみましたが、変わらず 空白のあった場所に出る始末です。

すると、全ての回答が全文表示されます。

関連するQ&A