2013-11-20 33 views
0

我想編碼一個表格來計算一個項目的價格。它包含許多用於輸入物品價格的輸入信息(如果它將打折的話)和折扣百分比,之後它將自動計算折扣價格。jQuery數學運算輸出輸入不起作用

折扣百分比和折扣價格隱藏在頁面加載中,並且只有在選中「是」折扣單選按鈕時才顯示。這些都可以隱藏並顯示得很好,但我目前無法計算折扣價格,因爲我的jQuery似乎存在問題。

任何幫助將不勝感激。

我的代碼提取物(jQuery的):

<!--calculates the discounted price--> 
    if($('#BizAddItemRadioYes').is(':checked')) { 

     $('#BizAddItemPercent').change(function(){ 

      var percent=$('#BizAddItemPercent').val(); 
      var price=$('#BizAddItemPrice').val(); 
      var discountpercent=percent/100; 
      var discountprice=price/discountpercent; 
      $('#BizAddItemDiscountPrice').val(discountprice); 

     }); 

    } 

代碼提取物(HTML):

<div class='BizAddItemDetails'> 
    <label for='BizAddItemPrice'>Price:</label> 
    <input class='BizAddItemInput' type='number' id='BizAddItemPrice' name='BizAddItemPrice'> 
    <span></span> 
</div> 

<div class='BizAddItemDetails'> 
    <label>Discount:</label> 
    <input type="radio" class='BizAddItemInput' value="Yes" id='BizAddItemRadioYes' name='BizAddItemDiscount'>Yes 
    <input type="radio" checked='checked' class='BizAddItemInput' value="No" id='BizAddItemRadioNo' name='BizAddItemDiscount'>No 
    </span></span> 
</div> 


<div class='BizAddItemDetails'> 
    <div class='BizAdditemDiscountDetails'> 
     <label for='BizAddItemPercent'>Discount Percentage</label> 
     <input class='BizAddItemInput' type='number' id='BizAddItemPercent' name='BizAddItemPercent'>% 
     <span></span> 
    </div> 
</div> 

<div class='BizAddItemDetails'> 
    <div class='BizAdditemDiscountDetails'> 
     <label for='BizAddItemDiscountPrice'>Discounted Price:</label> 
     <input class='BizAddItemInput' type='number' id='BizAddItemDiscountPrice' name='BizAddItemDiscountPrice' readonly > 
     <span></span> 
    </div> 
</div> 

回答

0

你有邏輯錯誤計算折扣價

試試這個:

$('#BizAddItemRadioYes').change(function(){ 
    if($(this).val() == 'Yes'){ 
    $('#BizAddItemPercent').change(function(){ 
     var percent=$('#BizAddItemPercent').val(); 
     var price=$('#BizAddItemPrice').val(); 
     var discountpercent=percent/100; 
     var discountprice=price * discountpercent; 

     $('#BizAddItemDiscountPrice').val(price - discountprice); 

    }); 

    } 
}); 

小提琴:http://jsfiddle.net/dHRYw/

1

你的腳本有一個邏輯問題,其他的不多:

只有在收音機被選中的情況下,你纔會附加更改功能,你的意思是隻有當收音機被選中時才計算它,但綁定應該總是那裏。

如果你改變了,如果放的變化綁定你得到這個http://jsfiddle.net/74WCF/2/

$('#BizAddItemPrice').on('change', function(){ 
    if($('#BizAddItemRadioYes').is(':checked')) { 

      var percent=$('#BizAddItemPercent').val(); 
      var price=$('#BizAddItemPrice').val(); 
      var discountpercent=percent/100; 
      var discount=price*discountpercent; 
      $('#BizAddItemDiscountPrice').val(price-discount);; 
    } 
}); 

在它綁定只對價格變化的例子,但也有很多東西不見了,像位關係,應在無線電和其他值輸入上添加相同的綁定。但小提琴應該把你放在正確的軌道上。