2014-06-24 27 views
0

塊引用價值變動

我有了三個字段,兩個文本字段,一個選擇字段的形式。如果我在一個文本字段中輸入價格並從下拉菜單中選擇一個折扣值,則銷售價格應自動顯示在文本字段中。價格計算是在jQuery的變化功能。假設如果銷售價格具有小數值,則在選擇框的點擊標籤上,小數點在銷售價格中被替換爲0。我不知道它爲什麼會發生。誰能幫幫我嗎?

塊引用

<div class="form-group"> 
          <label class="col-sm-3 control-label">Price<span style="color:red">*</span></label> 
          <div class="col-sm-6"> 
           <input type="text" class="form-control" id="price" name="price" onkeyup="this.value=this.value.replace(/[^0-9]/,'');" maxlength="10"/> 
          </div> 
          </div> 
          <div class="form-group"> 
          <label class="col-sm-3 control-label">Discount</label> 
          <div class="col-sm-6"> 
           <select name="discount" class="form-control" id="discount"> 
           <option value="0">-- Select Discount Range --</option> 
           <?php 
           $i=5; 
           while($i<=75){ 
           ?> 
           <option value="<?php echo $i; ?>"><?php echo $i."%"; ?></option> 

           <?php $i=$i+5; } ?> 
          </select> 
          </div> 
          </div> 
          <div class="form-group"> 
          <label class="col-sm-3 control-label">Sale Price</label> 
          <div class="col-sm-6"> 
           <input type="text" class="form-control" id="sale" name="sale_price" onkeyup="this.value=this.value.replace(/[^0-9]/,'');" maxlength="10" readonly> 
          </div> 
          </div> 

我的jQuery是

$('#discount').change(function(){ 
      var price = $('#price').val(); 
      var disc = $(this).val(); 
      var sale = (parseInt(price)-(parseInt(price) * (parseInt(disc)/100))); 
      $('#sale').val(sale); 
     }); 
+0

你能告訴我們你的代碼PLZ嗎?你可以使用[JsFiddle](http://jsfiddle.net/)來代替它 –

+0

我用我的代碼編輯了我的文章 – Zarin

回答

0

您需要使用fonction parseFloat()而不是parseInt函數()。 Int是一個不能得到十進制值的整數。

2.53 (Float value) 
5 (Int value) 
-8 (Int value) 
-5.98 (Float value) 

當你這樣做

var sale = (parseInt(price)-(parseInt(price) * (parseInt(disc)/100))); 

例如:價格等於2.50

parseInt函數(2.5) - >會給0

0 - 0 * 10/100 = 0

編輯:

我明白了,在這條線

this.value=this.value.replace(/[^0-9]/,''); 

你不允許,字符。

+0

沒有parseFloat也給出了相同的結果。 – Zarin

+0

好的,在.change事件期間嘗試放置一些console.log。打印每行的所有值並給我一個回調 –

+0

其實我得到的銷售價格正確。如果銷售價格有小數點,我點擊折扣選擇框,小數點被替換爲零 – Zarin