自動計算をこちらで作ってもらったのですが、IE(エキスプローラ―)だと合計計算表示されません。
chromeはちゃんとできます。
どこを修正すれば、IEでも数字が表示できるようになるでしょうか?
<script>(function(_){
_ ; function R(d,s){for(var i in s) d[i]=s[i]; return d}
_ ; function N(n){return n.toString(10).replace(/(\d)(?=(?:\d\d\d)+$)/, "$1,")}
_ ; /// 価格表
_ ; var PRICES = { item1: {A:1000, B:2000, C:3000}, item2: {X:100, Y:200}, item3: {Y:500, N:0} };
_ ; /// 自動計算してるっぽく表示
_ ; function changeOutput(elem, value) {
_ ; _ ; if (elem.value == value) return;
_ ; _ ; R(elem.style, {transition:'opacity 0.2s', opacity: '0.0'});
_ ; _ ; window.setTimeout(function(){
_ ; _ ; _ ; elem.value = value;
_ ; _ ; _ ; R(elem.style, {transition:'opacity 0.2s', opacity: '1.0'});
_ ; _ ; }, 200);
_ ; }
_ ; /// 請求額を計算して表示
_ ; function displayAmount(form) {
_ ; _ ; var elem = form.elements, num = parseInt(elem['number'].value, 10);
_ ; _ ; var total = 0;
_ ; _ ; for (var i in PRICES) {
_ ; _ ; _ ; var p = PRICES[i], e = elem[i];
_ ; _ ; _ ; if (!e || !(e.value in p)) { total = NaN; break; }
_ ; _ ; _ ; total += p[e.value];
_ ; _ ; }
_ ; _ ; var price = (isNaN(num) || isNaN(total))? '-': N(num * total);
_ ; _ ; changeOutput(elem['total'], price + ' 円');
_ ; }
_ ; // ページ表示したら表示
_ ; window.addEventListener('DOMContentLoaded', function(){
_ ; _ ; displayAmount(document.forms['form1']);
_ ; }, false);
_ ; // 値を変えたら表示
_ ; window.addEventListener('change', function(ev){
_ ; _ ; var form = ev.target.form;
_ ; _ ; if (form && form.name == 'form1') displayAmount(form);
_ ; }, false);
})()</script>
<form name=form1><table border>
<thead><tr><th>項目 <th>内容
<tbody>
<tr><td>生地の種類 <td>
<label><input type=radio name=item1 value=A>A</label>
<label><input type=radio name=item1 value=B>B</label>
<label><input type=radio name=item1 value=C>C</label>
<tr><td>つばの形 <td>
<label><input type=radio name=item2 value=X>X</label>
<label><input type=radio name=item2 value=Y>Y</label>
<tr><td>裏地の有無 <td>
<label><input type=radio name=item3 value=Y>有</label>
<label><input type=radio name=item3 value=N>無</label>
<tr><td>注文数 <td>
<label><input type=radio name=number value=1>1</label>
<label><input type=radio name=number value=2>2</label>
<label><input type=radio name=number value=3>3</label>
<tr><td>合計 <td>
<output name=total></output>
</table></form>
No.2ベストアンサー
- 回答日時:
ざっとかきます
<script>
document.addEventListener('change',function(e){
calc();
});
function calc(){
var PRICES = { item1: {A:1000, B:2000, C:3000}, item2: {X:100, Y:200}, item3: {Y:500, N:0} };
var item1=PRICES["item1"][getRadioValue("item1")];
var item2=PRICES["item2"][getRadioValue("item2")];
var item3=PRICES["item3"][getRadioValue("item3")];
var num =getRadioValue("number");
if(item1!=undefined & item2!=undefined & item3!=undefined & num!=null){
document.getElementsByName('total')[0].innerHTML=(item1+item2+item3)*num;
}
}
function getRadioValue(v){
var n=document.getElementsByTagName('input');
for(var i=0;i<n.length;i++){
if(n[i].type=="radio" && n[i].name==v && n[i].checked){
return n[i].value;
}
}
return null;
}
</script>
<form name=form1><table border>
<thead><tr><th>項目 <th>内容
<tbody>
<tr><td>生地の種類 <td>
<label><input type="radio" name="item1" value="A">A</label>
<label><input type="radio" name="item1" value="B">B</label>
<label><input type="radio" name="item1" value="C">C</label>
<tr><td>つばの形 <td>
<label><input type="radio" name="item2" value="X">X</label>
<label><input type="radio" name="item2" value="Y">Y</label>
<tr><td>裏地の有無 <td>
<label><input type="radio" name="item3" value="Y">有</label>
<label><input type="radio" name="item3" value="N">無</label>
<tr><td>注文数 <td>
<label><input type="radio" name="number" value="1">1</label>
<label><input type="radio" name="number" value="2">2</label>
<label><input type="radio" name="number" value="3">3</label>
<tr><td>合計 <td>
<output name="total"></output>
</table></form>
No.1
- 回答日時:
ラジオボタンのDOM処理がおかしくないですか?
<script>
document.addEventListener('change',function(e){
console.log(document.querySelector('[name=hoge]:checked').value);
});
</script>
<input type="radio" name="hoge" value="1">1<br>
<input type="radio" name="hoge" value="2">2<br>
<input type="radio" name="hoge" value="3">3<br>
チェックされたものvalueを拾わないといけません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Formのシリアライズができない
-
複数のselect値で1つも選択され...
-
javascriptで表(テーブル)の自...
-
return trueとreturn falseの用...
-
追加ボタンを押した際に ok ボ...
-
チェックボックスのON/OFFでVal...
-
<form action="#">の意味とは?
-
jQuery セレクトボックスで選択...
-
フォームが空欄の時にフォーム...
-
【jQuery】input nameの文字列...
-
新しくフォルダを作成したい
-
javascriptの値をformのinput h...
-
正規表現で複数マッチ条件で悩...
-
マイナスなら赤字で表示したい...
-
チェックボックスの設定
-
ラジオボタンでポップアップメ...
-
javascriptで画像の移動
-
特定<table>内の<td>の色を変える
-
テーブルで複数行をまとめて非...
-
子ウィンドウを閉じるとき、親...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
複数のselect値で1つも選択され...
-
チェックボックス付きのテーブ...
-
ラジオボタンが選択されたらテ...
-
入力チェックの外部スクリプト...
-
Javascriptの電卓で最初の何も...
-
文字数を数える際に空白、改行...
-
画面の2重起動をチェックする...
-
画面表示とともにtableの指定の...
-
jQueryで合計を出したい
-
localStorageでのcheckbox制御
-
JavaScriptによる自動計算フォーム
-
同一nameの input type="text"...
-
テーブル内のチェックボックス...
-
formで項目を連結したい
-
クリックしたラジオボタンの行...
-
Javascriptで自動計算の合計の...
-
ラジオボタンを一括で操作する...
-
送信ボタン連打を抑止したいです
-
ボタン押下すると一行テキスト...
おすすめ情報
具体的にどう変えればいいか教えて頂けるとありがたいです。