• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ジャバスクリプトで自動計算表を作ったのですが、IEでは動くのですが、フ)

ジャバスクリプトで自動計算表を作ったのですが、IEでは動くのですが、ファイヤーフォックスでは動きません。どこに不具合があるのでしょうか?

このQ&Aのポイント
  • 質問者はジャバスクリプトで自動計算表を作成しましたが、Internet Explorerでは正常に動作する一方、FireFoxでは動作しない問題が発生しています。不具合の原因を特定するために、質問者はアドバイスを求めています。
  • 不具合の原因を特定するためには、質問者が作成したコードを確認する必要があります。また、他のウェブブラウザでも同様の問題が発生するかどうかも確認する必要があります。
  • 質問者は問題のフォームのURLを提供しており、コードの一部も掲載されています。アドバイザーはこの情報を元に、質問者の問題を解決するためのアドバイスを提供することができます。

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

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

う~~ん。 それで通じるってのはある意味すごいですね。 要素の指定方法を「名前.名前」方式でなくせば、一般的な指定方法になるのでいけるのでは?  var elem = document.forms['form1'].elements['要素名']; みたいな感じ。 毎回長い記述をするのが面倒なら、はじめに  var f = document.forms['form1'].elements; としておいて、  f['要素名'] で取得できます。(withとかでも良いかも) とりあえずそれでいけることはいけるみたいですが、name属性はアルファベットで開始し、英数(といくつかの記号)で記述することを強くお勧めします。 http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/types.html#type-cdata あと、関数の呼び出し側には引数がありますが、結局使っていないみたいなので、いらないのでは? テーブルも表以外に用いるのは、勧められていないようですし… なんとなく全体に同じものが2つある構成だし計算はほぼ単純合計なので、商品1と2で同じ計算を別個に書かなくても良さそうだし、グルーピングさえしておけばそれぞれの項目の名前に頼る必要もないのでは? 以下、ご参考までに。 <script type="text/javascript"><!-- function calc(n) { var g = document.getElementById('group' + n); var s = g.getElementsByTagName('SELECT'); var i, t = (n==1?3680:4900) * s[0].value; for (i=1; i<s.length; i++) t += 1 * s[i].value; g.getElementsByTagName('INPUT')[0].value = t; } --></script> <form name="form1"> <div id="group1"> 格安 3,680円 <select name="格安コース_数" onChange="calc(1)"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> </select> <select name="格安コース_工期等課金" onchange="calc(1)"> <option value="0">選択→</option> </select> <select name="格安コース_柄" onchange="calc(1)"> <option value="0">選択→</option> </select> <select name="格安コース_シート" onchange="calc(1)"> <option value="0">選択→</option> </select> <select name="格安コース_乾燥" onchange="calc(1)"> <option value="0">選択→</option> </select> <input type="text" name="格安コースの小計" size="8" value="0"> 円 </div> <div id="group2">  ・・・・・ </div> </form>

aokikki
質問者

お礼

ありがとうございます。助かりました。

その他の回答 (1)

  • kurotrb
  • ベストアンサー率34% (10/29)
回答No.1

おそらく不具合ではなく,Tridentにしか対応していないのだと思います。 Gecko,Webkit,Prestoエンジンで試してみましたが,全部ダメでした。 「Internet Explorer 7.0以上でご覧下さい。」とでも書いとけばいいでしょう。 IE持ってない人はそうそういないとおもうので....

aokikki
質問者

お礼

ありがとうございました。