- ベストアンサー
自動計算を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; // 合計を表示 } *********************************** 解決方法をご教授頂けたら幸いです。 何卒よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ワンクリック押すという必要がでてしまいましたが、 onkeyupとかのイベントハンドラであれば入力直後に処理はできますよ。 FORM0: <form> goods:<input type="text" name="goods1" onkeyup="keisan(this.form);"> ~略~
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>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>
お礼
早速回答ありがとうございました! ワンクリック押すという必要がでてしまいましたが、FireFox・IEともに動作しました! お礼申し上げます!