• ベストアンサー

自動計算をIEとFireFoxで動かすには?

いつもお世話になっています。 フォームに入力した値を10で割った数を答えを自動で計算して、別フォームに出力する部分で、FireFoxでは自動計算されるのですがIEでは計算が行われませんでしたx_x; 【ソース】******************************* <script type="text/javascript"> <!-- function keisan(){ // 設定開始 // 商品1 var price1 = document.form1.goods1.value / 10; // 単価を設定 document.form1.field1.value = price1; // 小計を表示 // 合計を計算 var total = price1; // 設定終了 document.form1.field_total.value = total; // 合計を表示 } *********************************** 解決方法をご教授頂けたら幸いです。 何卒よろしくお願い致します。

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

  • ベストアンサー
  • 15mm
  • ベストアンサー率65% (65/100)
回答No.2

>ワンクリック押すという必要がでてしまいましたが、 onkeyupとかのイベントハンドラであれば入力直後に処理はできますよ。 FORM0: <form> goods:<input type="text" name="goods1" onkeyup="keisan(this.form);"> ~略~

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>document.form1 というのはform1というnameをフォームにつけているのでしょうか? 今のルールではformには名前をつけられませんのでidで処理した方が よいでしょう。 またinputに入力した値は文字列として認識されるので明示的に 数値に変換してやるとよいでしょう。 こんな感じでどうでしょうか? <script type="text/javascript"> function keisan(f0){ var price1 = parseFloat(f0.goods1.value) / 10; var f1=document.getElementById('form1'); f1.field1.value = price1; var total = price1; f1.field_total.value = total; } </script> FORM0: <form> goods:<input type="text" name="goods1"><br> <input type="button" value="calc" onClick="keisan(this.form)"> </form> FORM1: <form id="form1"> field1:<input type="text" name="field1"><br> total:<input type="text" name="field_total"><br> </form>

news_0203
質問者

お礼

早速回答ありがとうございました! ワンクリック押すという必要がでてしまいましたが、FireFox・IEともに動作しました! お礼申し上げます!

関連するQ&A