2011-04-14 102 views
0

HTML代碼:如何捕捉onchange事件在多個文本字段

<input type="text" name="percentage[]" value="1"/> 
<input type="text" name="percentage[]" value="2"/> 
<input type="text" name="percentage[]" value="3"/> 

我希望能夠通過使用jQuery來趕上變化的事件,當任何一個「比例」的文本字段的變化,發現所有這些總和領域。所以,如果第一個字段的值從1變爲5,我希望能夠顯示「10」。

+1

可能重複:http://stackoverflow.com/questions/805963/how-do-i-bind-onchange-event-of-a-textbox -using-jquery/805976#805976 – reggie 2011-04-14 19:00:35

回答

1

您也可以使用這樣的事情:

$("input[type='text'][name^='percentage']").keyup(function(){ 
    alert(sumThemUp()); 
}); 

function sumThemUp(){ 
    var sum = 0; 
    $("input[type='text'][name^='percentage']").each(function(){ 
     sum+= parseInt($(this).val()); 
    }); 
    return sum; 
}; 

jsfiddle工作的例子。

你也可以檢查jQuery API來選擇可能更適合你的選擇器,如果你願意。有許多變化,如!=,〜=,* =等。

+0

謝謝。這工作。但是當我試圖通過$('input [name = percentage]')實現時,它不起作用。我不能使用名稱屬性而不是文本屬性?如果我有不同名稱的其他文本字段,但我只想總結百分比字段? – balistik 2011-04-14 19:24:25

+0

Opps!我剛看到你的答案。 – balistik 2011-04-14 19:25:21

+0

我修改了我的答案..正確的選擇器是'$(「input [type ='text'] [name^='percentage']」)''。這將匹配所有文本輸入與名稱以字百分比開始。更簡單的方法是添加自定義CSS類,然後確定該類的元素。 – Damb 2011-04-14 19:27:10

1

假設你有一個新元素,表現出的總和,並沒有其他投入要素,這將工作:

$("input[type=text]").change(function() { 
     // Clear the sum 
     $("#sum").text("0"); 

     // Sum the values 
     $("input[type=text]").each(function() { 
       $("#sum").text(parseInt($("#sum").text()) + parseInt($(this).val())) 
      }); 
    }); 

它惹人要素髮生變化,然後遍歷所有這些,總結起來。

+0

謝謝!其實,還有其他輸入字段(如複選框)。那麼我如何區別於其他輸入字段呢? – balistik 2011-04-14 19:07:10