对文本框的求和操作

时间:2012-11-05 16:26:11

标签: jquery

我有多个文本框(类txtsum),只允许使用数字。如何在用户在文本框中键入时,如何计算所有这些文本框的总和

var $txtb = $(':input.txtsum');
$txtb.on('change',function(){
    tot = 0.0;
    $txtb.each(function() {
        tot += parseFloat($(this).text());
    });
});

你能建议我做对的/更好的方法吗?这是我尝试http://jsfiddle.net/DPe4W/

的内容

2 个答案:

答案 0 :(得分:4)

更改

tot += parseFloat($(this).text());

tot += parseFloat($(this).val()); 

您应该使用.val来获取inputselect等任何输入元素的值。

我也改变了你的代码,如下所示,

DEMO: http://jsfiddle.net/DPe4W/7/

var $txtb = $(':input.txtsum');
$txtb.on('keyup', function() {
    var tot = 0.0;
    $txtb.each(function() {
        var val = parseFloat(this.value);
        if (!isNaN(val)) {   
           tot += val;
        }
    });

    $("p").html(tot);
});

答案 1 :(得分:0)

.text()不适用于输入类型。请改用.val()

而不是

 $(this).text()

使用

($(this).val() ; // To calculate the value

完整代码

    var $txtb = $(':input.txtsum');
$txtb.on('keyup', function() {
    tot = 0.0;
    $txtb.each(function() {
        var t = $(this).val() != '' ? $(this).val() : 0;
        tot += parseFloat(t);
    });
    $("p").html(tot);
});​

<强> Check Fiddle