2009-11-12 40 views
0

我遇到的問題是我正在開發一個發票系統。其中使用此項,添加一個唯一的ID來形成輸入總計

$(document).ready(function() { 
    $('#add').click(function() { 
     JQuery('#lineItems').append('<input type="text" name="description[]" 
      class="ui-corner-all text invDesc" /> 
      <input type="text" name="qty[]" class="ui-corner-all text invQty" /> 
      <input type="text" name="amount[]" class="ui-corner-all text invAmount" 
      title="Amount" /> 
      <input type="hidden" name="rowTotal[]" class="row-total-input" />'); 
    }); 
    }); 

創建新訂單項。名爲rowTotal []的隱藏輸入用於保存每行的總數,以便將它們相加。該守則我使用獲得該行總數量的*量,

$(function(){ 
    $('.row-total-input').each(
     function(intIndex){ 
      $('.invAmount').livequery('blur', function() { 
        var $this = $(this); 
        var amount = $this.val(); 

        var qty = $this.parent().find('.invQty').val(); 

        if ((IsNumeric(amount)) && (amount != '')) {   
         var rowTotal = qty * amount; 
         $this.css("background-color", "white").parent().find(".row-total-input").val(rowTotal); 
        } else {   
         $this.css("background-color", "#ffdcdc");      
        };   

        calcProdSubTotal();  
        calcOrderTotal(); 
      }); 
     } 
    ); 
}); 

但是它更新所有rowTotal []輸入字段最後一排總讓最後一筆是不正確的。

我假設我需要爲每個rowTotal []創建一些唯一的ID,所以只有正確的更新。我只是不知道該怎麼做。

在此先感謝。

回答

0

阿的問題是在這裏:

var qty = $this.parent().find('.invQty').val(); 

如果每一行會有一個明顯的父母會被罰款,但所有的「行」都包含在同父之內 - #lineItems。什麼應該幫助改變你目前的行創建代碼爲:

$(document).ready(function() { 
    $('#add').click(function() { 
     JQuery('#lineItems').append('<div><input type="text" name="description[]" 
      class="ui-corner-all text invDesc" /> 
      <input type="text" name="qty[]" class="ui-corner-all text invQty" /> 
      <input type="text" name="amount[]" class="ui-corner-all text invAmount" 
      title="Amount" /> 
      <input type="hidden" name="rowTotal[]" class="row-total-input" /></div>'); 
     //notice the extra div tag that wrapps around all the input fields 
    }); 
}); 
+0

謝謝Ramuns,你的天才,它完美的作品。 – Tristan 2009-11-13 02:50:44