2013-09-27 19 views
0

有兩個文本框定義像這樣,這是一箇中繼器內:jQuery的輸入選擇 - 加起來總計轉發器內

<asp:TextBox ID="txtHours" runat="server" CssClass="text misch" Width="50px" Text='<%# Eval("laborHours") %>'/> 
<asp:TextBox ID="txtCosts" runat="server" CssClass="text misc" Width="50px" Text='<%# Eval("totalCosts") %>'/> 

我也有兩個箱子在這裏我想提出總計:

<asp:TextBox ID="txtMiscH" runat="server" CssClass="text hours" Width="200px" /> 
<asp:TextBox ID="txtMisc" runat="server" CssClass="text add" Width="200px" /> 

當中繼器中的值發生變化時,我想將它們添加並放入適當的總計框中。

這就是我現在:

//add up miscaleneous mnumbers 
    //dollar amoungs 
    $("input[class~='misc']").change(function (event) { 
     var sum = 0; 
     var num = 0; 
     $("input[class~='misc']").each(function (event) { 
      num = parseInt($(this).val()) || 0; 
      sum = sum + num; 
     }); 
     $("input[id*='txtMisc']").val(sum); 
     $("input[class~='add']").trigger('change'); 
    }); 

    //hours 
    $("input[class~='misch']").change(function (event) { 
     var sum = 0; 
     var num = 0; 
     $("input[class~='misch']").each(function (event) { 
      num = parseInt($(this).val()) || 0; 
      sum = sum + num; 
     }); 
     $("input[id*='txtMiscH']").val(sum); 
    }); 

,但它並不像第一個選項在所有工作。

還我看到有不同的方式來選擇

input[class~input[class*input[class^

現在用我錯了輸入?

我猜是因爲misc也是misch的一部分,它會計算幾個小時,即使我只更新misc費用框。請hep。重命名類類型是解決這個問題的最簡單方法嗎?

http://jsfiddle.net/SKYDr/

+0

需要在document.ready fucntion – DavidB

+0

它已經在它。函數激發,他們只是在我更新「成本」時無法正常工作,因爲它的CSS名稱也是「小時」的CSS名稱的一部分。 –

+0

對不起,只是掠過它 – DavidB

回答

0

而不是使用$("input[class~='misc']")可以使用指示的DOM元素直接諸如低於

$("input.misc") 
$("input.misc[type=text]") 
$("input.misc:text") 

同樣可以用於進行例如input[id*='txtMiscH']選擇

$("input#txtMiscH") 
$("input#txtMiscH[type=text]") 
$("input#txtMiscH:text") 

希望這會有所幫助!