簡體   English   中英

將輸入值與選擇選項數據屬性相乘

[英]Multiply input value with select option data attribute

我有以下代碼沒有按照我希望的方式工作,顯然,我試圖將選擇選項數據屬性與輸入文本區域值相乘,但正在使用選擇選項值。 我需要弄清楚為什么會這樣。

這是我的代碼;

     <input id="count" min="1" value="1" class ="txtMult form-control" type="number" name="txtEmmail" />
      <input type="text" value=""  class ="txtMult" name="txtEmmail"/>
      <span class="multTotal"></span>

    <select class="selectpicker">
    <option value="1" data-cubics='1'>multiply with 1</option>
    <option value="5" data-cubics='5'>multiply with 5</option>
    </select>

    <span id="grandTotal">250</span>

$(function(){
                $('.txtMult').change(function(){
                    var p=$(this).parent().parent()
                    var m=p.find('input.txtMult')
                    var mul=parseInt($(m[0]).val()*$(m[1]).val()).toFixed(2)
                    var res=p.find('.multTotal')
                    res.html(mul);
                    var total=0;
                    $('.multTotal').each(function(){
                        total+=parseInt($(this).html());
                    })
                    parseInt(total).toFixed(2);
                    $('#grandTotal').html(parseInt(total).toFixed(2));
                });
            })



$('.selectpicker').change(function() {
    calcVal();
});

function calcVal(){
    $(this).data('cubics')*$('.multTotal').html();
   $("#grandTotal").html($(this).data('cubics')*$('.multTotal').html())
}

// call on document load
calcVal();
  • 不要使用.html()來獲取值,而是使用.text()
  • 您需要使用以下方法獲取所選選項:
$("#grandTotal").html($(this).children(':checked')

 $(function() { $('.txtMult').change(function() { var p = $(this).parent().parent() var m = p.find('input.txtMult') var mul = parseInt($(m[0]).val() * $(m[1]).val()).toFixed(2) var res = p.find('.multTotal') res.html(mul); var total = 0; $('.multTotal').each(function() { total += parseInt($(this).text()); }) parseInt(total).toFixed(2); $('#grandTotal').html(parseInt(total).toFixed(2)); }); }) $('.selectpicker').change(calcVal); function calcVal() { $("#grandTotal").html($(this).children(':checked').data('cubics') * $('.multTotal').text().trim()) } // call on document load calcVal();
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> <div> <input id="count" min="1" value="1" class="txtMult form-control" type="number" name="txtEmmail" /> <input type="text" value="" class="txtMult" name="txtEmmail" /> <span class="multTotal"></span> <select class="selectpicker"> <option value="1" data-cubics='1'>multiply with 1</option> <option value="5" data-cubics='5'>multiply with 5</option> </select> <span id="grandTotal">250</span> </div> </div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM