2012-07-17 53 views
0

我想要做一個對我來說很奇怪的表單。使用jquery來操縱表單的複選框

基本概念是我的表單中有一列產品複選框,如果您選擇該產品,則需要檢查相關產品複選框。

在表格中,我有另外兩欄是產品的價格和尺寸。我想要計算價格的數量和尺寸取決於哪些產品正在打勾。目前爲止我只能獲得正在檢查的產品的價值,而不是價格和尺寸的價值。另外,如何動態地進行計算。

下面是HTML,http://jsfiddle.net/DDEzm/2/

希望有人可以幫助,非常感謝。

+0

你是如何存儲的價格和大小?它沒有在你的小提琴中指出? – dcpomero 2012-07-17 02:33:44

+0

我剛纔設置的所有文本框都被禁用了。 – A7bert 2012-07-17 02:35:14

+0

tb1,tb2,tb3,tb4是價格和尺寸? – Cauliturtle 2012-07-17 02:36:07

回答

0

試試這個,這個解決方案是基於你的標記:

$(function(){ 
    $('#cb1').live('change',function(){ 
     if ($(this).is(':checked')) { 
      var val = 0; 
      val = parseInt($('#tb1').val(), 10) + parseInt($('#tb2').val(), 10) 
      $('#presult').val(val)    
     } else { 
      $('#presult').val('0')    
     } 
    }); 
}); 

DEMO

+0

你們如何能夠順利地使用is('checked')......工作真的很好。非常感謝。 – A7bert 2012-07-17 02:46:00

+0

@NewInAlbert歡迎您。 – undefined 2012-07-17 02:55:52

+0

我不知道它爲什麼改變。 – A7bert 2012-07-17 03:01:01

0

所有你需要做的就是值如下:

$(function(){ 
    $("[name='chkProduct']").live('change',function(){ 
     var totalCost = 0; 
     $("[name='chkProduct']").each(function(i){ 
      if($(this).attr("checked")) { 
       var price = $(this).parent().next().find("[name='price']").val(); 
       var size= $(this).parent().next().next().find("[name='size']").val(); 
       totalCost = totalCost + (price * size); 
       $("#presult").val(totalCost); 
      } 
     }); 
    }); 
});​ 

但你可能要添加檢查,以確保它是您要添加的數字,無論是通過限制輸入,或者檢查你點擊複選框的時間。例如,您可以使用javascripts parseInt

此外,您可以有一個名稱或類來標識複選框。這樣您就不必爲每個複選框編寫更改功能。

編輯

我修改它,這樣它會與所有複選框工作,caluculate總。

+0

非常感謝您的回覆和建議,我會在最後使用它們。但是,這並不是我想要的。我希望我可以將價格數量計算到「presult」文本框中,同樣的事情也發生在大小上。 – A7bert 2012-07-17 02:42:25

+0

要添加到presult,只需寫'$(「#presult」)。val(calculatedValue);' – 2012-07-17 02:45:47

+0

我也嘗試過。不管你的回覆如何,你的代碼只是給了我一些其他的想法。 – A7bert 2012-07-17 02:47:21