我有多个文本框(类txtsum
),只允许使用数字。如何在用户在文本框中键入时,如何计算所有这些文本框的总和
var $txtb = $(':input.txtsum');
$txtb.on('change',function(){
tot = 0.0;
$txtb.each(function() {
tot += parseFloat($(this).text());
});
});
你能建议我做对的/更好的方法吗?这是我尝试http://jsfiddle.net/DPe4W/
的内容答案 0 :(得分:4)
更改
tot += parseFloat($(this).text());
到
tot += parseFloat($(this).val());
您应该使用.val
来获取input
,select
等任何输入元素的值。
我也改变了你的代码,如下所示,
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 强>