Javascript 带有表和行输入的Jquery
我对下面的代码有问题, 我想对tr的所有输入值求和,除了它显示所有行上的行值,而不是更改的行上的行值之外,这一切都很好。 代码如下:Javascript 带有表和行输入的Jquery,javascript,jquery,Javascript,Jquery,我对下面的代码有问题, 我想对tr的所有输入值求和,除了它显示所有行上的行值,而不是更改的行上的行值之外,这一切都很好。 代码如下: $(".txtMult input").keyup(multInputs); function getNum($val) { if (isNaN($val)) { return 0; } else { return $val; } } function multInputs() {
$(".txtMult input").keyup(multInputs);
function getNum($val) {
if (isNaN($val)) {
return 0;
} else {
return $val;
}
}
function multInputs() {
var mult = 0;
var $total = 0;
// for each row:
$("tr.txtMult").each(function () {
var $total = 0;
$("input.val").each(function () {
// get the values from this row:
$total = +parseFloat($total)+getNum(parseFloat($(this).val()));
});
$('.multTotal',this).text($total);
});
}
有什么建议吗
JSfiddle上的示例
它显示所有行上的行值,而不是更改的行
我对该语句的理解是,您只想显示已更改或具有值的行的总数,然后只需添加if/else语句,如:
function multInputs() {
var mult = 0;
// for each row:
$("tr.txtMult").each(function () {
// get the values from this row:
var $val1 = $('.val1', this).val();
var $val2 = $('.val2', this).val();
var $total = ($val1 * 1) * ($val2 * 1)
if ( $total != 0 && !isNaN($total) ) {
$('.multTotal',this).text($total);
mult += $total;
} else $('.multTotal',this).text("");
});
$("#grandTotal").text(mult);
}
这是小提琴:
我还添加了一个条件,仅显示有效数字-!伊斯南:总计$
更新:
关于此小提琴的最新更新:
错误出现在$input.val中,您在所有TR上选择了类为val的所有输入
您应该使用$this.findinput.val指定您只需要循环中当前tr上的input.val
$("tr.txtMult").each(function () {
var $total = 0;
$(this).find("input.val").each(function () {
// get the values from this row:
$total = +parseFloat($total)+getNum(parseFloat($(this).val()));
});
$('.multTotal',this).text($total);
});
小提琴手:你的桌子看起来像我期望的那样工作。你能再解释一下到底是什么问题吗?你的JSFIDLE代码似乎工作得很好。所以我无法理解你的问题。请解释一下。您希望乘法发生在更改的行上,但要得到总计,您必须遍历每一行并计算它。所以,您当前的解决方案并没有那么糟糕。可能您想要我们期望的其他东西,您应该解释更多关于这一部分的内容。抱歉,伙计们,错误的JSFIDLE代码,我已经更新了url:thx或帮助,这在单独运行时效果非常好,但当我将其放入数据表时,它无法100%工作,它做的每件事都是正确的,即使加上值和总数也是正确的,但我无法将其写入span类,没有错误,没有任何错误。很奇怪。当我向multirow发出警报时,我得到的是object。有什么建议吗?