Jquery 如何在多个文本框字段上捕获onchange事件

Jquery 如何在多个文本框字段上捕获onchange事件,jquery,Jquery,HTML代码: <input type="text" name="percentage[]" value="1"/> <input type="text" name="percentage[]" value="2"/> <input type="text" name="percentage[]" value="3"/> 我希望能够在任何“百分比”文本字段更改时使用JQuery捕获更改事件,并找到所有这些字段的总和。因此,如果第一个字段的值从1变为5,我希

HTML代码:

<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”。

假设您有另一个元素来显示总和,并且没有其他输入元素,这将起作用:

$("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()))
            });
    });

它捕捉到元素的变化,然后在所有元素上循环并汇总它们。

您也可以使用类似的方法:

$("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;
};
在的工作示例。


您还可以检查jQueryAPI以选择可能更适合您的选择器(如果您愿意)。有许多变体,如!=、~=、*=等。

可能重复:谢谢!实际上,还有其他输入字段(如复选框)。那么我如何区别于其他输入字段呢?谢谢。这很有效。但是,当我试图通过$('input[name=percentage')实现这一点时,它不起作用。我不能使用名称属性而不是文本属性吗?如果我有其他具有不同名称的文本字段,但我只想对百分比字段求和,该怎么办?Opps!我刚看到你的答案我修改了我的答案。。正确的选择器是
$(“输入[type='text'][name^='percentage'])
。这将匹配名称以单词百分比开头的所有文本输入。更简单的方法是imo添加自定义css类,然后通过该类识别元素。谢谢Dampe。它起作用了;我按照你的建议使用了CSS类。