0

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

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

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

4

2 回答 2

4

改变

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

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

您应该使用.val来获取任何输入元素的值,例如input, select

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

演示: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);
});
于 2012-11-05T16:27:40.037 回答
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);
});​

检查小提琴

于 2012-11-05T16:28:01.053 回答