2013-04-20 40 views
1

我想創建一個動態報價表單,用戶可以根據需要添加儘可能多的行。在輸入'reCal'類輸入字段後,我想要計算總價格字段。jQuery模糊問題在多個字段

<div class="orderItem"> 
<div class="row col2"> 
<input class="reCal nvo" id="iQty" name="item[1][qty]" placeholder="1" value="" /> 
</div><!--col2--> 
<div class="row col3"> 
<input class="ctp reCal nvwdo currency" id="iPrice" name="item[1][price]" placeholder="100.00" value="" /> 
</div><!--col3--> 
</div><!--orderItem--> 

<div class="box"> 
<p>Net Total (£)</p> 
<input class="noh" id="netTotal" name="netTotal" type="text" readonly="readonly" value="0" /> 
</div> 

這是我目前擁有的jQuery。

$(document).ready(function(){ 

    $('.reCal').blur(function(){ 
     calculate(); 
    }); 

    function calculate(){ 
     var net = 0; 
     $('.ctp').each(function(){ 
      net += parseInt($(this).val()); 
     }); 
     $('input#netTotal').val(net.toFixed(2)); 
    } 
}); 

此代碼正確計算總和,但模糊功能僅適用於,即使所有其它的輸入框具有相同的類的第一個輸入框。

我不知道如果可能我的問題源於使用.after()命令寫入每個新行。只是一個理論。

回答

2

試試這個辦法 -

$(document).on('blur','.reCal',function(){ 
     calculate(); 
}); 
+1

或者只是'$(document).on('blur','.reCal',計算);' – Blender 2013-04-20 19:14:54

+0

工作過!謝謝! – Warren 2013-04-20 19:23:22

0

嘗試下面的代碼,

$(document).ready(function(){ 

    $('.reCal').live('blur',function(){ 
    calculate(); 
    }) 

    function calculate(){ 
     var net = 0; 
     $('.ctp').each(function(){ 
      net += parseInt($(this).val()); 
     }); 
     $('input#netTotal').val(net.toFixed(2)); 
    } 
}); 
+0

現場已被棄用,使用'on'代替。 – 2013-04-20 19:09:53