色々試してみたのですが、
うまくいかないため教えていただきたいです。
下記のような計算機能を作りたいです。
カード値段×チームの希望個数の合計=値段合計
現在のテキストから値段を取得する方法ではなく、
inputのvalueから値段を取得する方法に変更し、
チェックをすべて外したときは0円に戻るようにしたいです。
その合計金額もリアルタイム表示するにはどうすればよいでしょうか?
html
1<section> 2<dl id="team"> 3<dt><label>チーム</label></dt> 4<dd> 5<p>A <input type="number" placeholder="0"></p> 6<p>B <input type="number" placeholder="0"></p> 7<p>C <input type="number" placeholder="0"></p></dd> 8</dl> 9 10<dl id="sum_card"> 11<dt><label>個数合計</label></dt> 12<dd id="sum_number"> 13<input type="number" placeholder="0" id="sum_quantity"></dd> 14</dl> 15</section> 16 17 18<div> 19<form> 20<div> 21<ul> 22<li> 23<input type="checkbox" class="select-checkbox" id="select-checkbox-01" name="select-checkbox" value="100"> 24<label for="select-checkbox-01" class="item-info"> 25<div class="check-img"></div> 26<div class="ttl">カード1</div> 27<div class="price">100円</div> 28</label> 29</li> 30<li> 31<input type="checkbox" class="select-checkbox" id="select-checkbox-02" name="select-checkbox" value="180"> 32<label for="select-checkbox-02" class="item-info"> 33<div class="check-img"></div> 34<div class="ttl">カード2</div> 35<div class="price">180円</div> 36</label> 37</li> 38<li> 39<input type="checkbox" class="select-checkbox" id="select-checkbox-03" name="select-checkbox" value="400"> 40<label for="select-checkbox-03" class="item-info"> 41<div class="check-img"></div> 42<div class="ttl">カード3</div> 43<div class="price">400円</div> 44</label> 45</li> 46<li> 47<input type="checkbox" class="select-checkbox" id="select-checkbox-04" name="select-checkbox" value="1100"> 48<label for="select-checkbox-04" class="item-info"> 49<div class="check-img"></div> 50<div class="ttl">カード4</div> 51<div class="price">1,100円</div> 52</label> 53</li> 54</ul> 55</div> 56</form> 57</div> 58 59 60<div>値段合計<span><span class="price-chg" id="price-chg">0</span>円</span> 61</div>
jQuery
1document.addEventListener('input',()=>{ 2var card_quantity = $("#number_card dd p input").get().reduce((s, e) => +e.value + s, 0); //各枚数を合計 3 4$("dl#sum_card dd input").val(card_quantity); //合計枚数を書き出す 5 6//チェックした値段×枚数 7$('#sum_quantity,.select-checkbox').on('input',function(){ 8var quantity=isNaN($('#sum_quantity').val())?0:parseInt($('#sum_quantity').val()); 9 10var price=$('.select-checkbox:checked').next().children('.price').map(function(){ 11return parseInt($(this).text().replace(/[^0-9]/g,'')); 12}).get().reduce(function(x,y){ 13return x+y; 14}); 15 //合計を書き出す 16$('#price-chg').text(quantity*price); 17}); 18 19});
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/21 09:20
2021/03/21 10:12
2021/03/22 03:39