Javascript 关于更改计算的jQuery文本框

Javascript 关于更改计算的jQuery文本框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我几乎没有复选框!每次选中复选框时,它将自动汇总总成本: <input type="checkbox" rel="90" alt="30.00">Pearl or White <input type="checkbox" rel="120" alt="35.00">Natural <div id="t_balance"></div> 现在,1个折扣文本输入: <input type="text" id="discount" /> 完

我几乎没有复选框!每次选中复选框时,它将自动汇总总成本:

<input type="checkbox" rel="90" alt="30.00">Pearl or White
<input type="checkbox" rel="120" alt="35.00">Natural
<div id="t_balance"></div>
现在,1个折扣文本输入:

<input type="text" id="discount" />
完整代码:


如果所需的输出为55.00,而用户同时选中了复选框并在文本框中键入10,则按如下方式更改calculateSum函数

function calculateSum() {
    var sum = 0;
    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    $("#t_balance").html(($("#t_balance").html()-sum).toFixed(2));
}

如果所需的输出为55.00,而用户同时选中了复选框并在文本框中键入10,则按如下方式更改calculateSum函数

function calculateSum() {
    var sum = 0;
    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    $("#t_balance").html(($("#t_balance").html()-sum).toFixed(2));
}
onCheck
内部调用
calculateSum
,以始终计算折扣

还简化了绑定处理程序的方式,因为这样会产生不必要的开销

演示

onCheck
内部调用
calculateSum
,以始终计算折扣

还简化了绑定处理程序的方式,因为这样会产生不必要的开销


你要找的是

的演示吗?

是你要找的吗?

@Tahir如果你选中了jsfiddle链接,价格扣减就不起作用了你的意思是,“如果用户选中了复选框并在文本框中键入10,那么需要显示55.00”@Tahir如果你选中了jsfiddle链接,价格扣减就不起作用了,你的意思是,“如果用户选择了复选框并在文本框中键入10,则需要显示55.00”?刚刚选中,两者都不是我的。是的,当你“更改”折扣时,我没有考虑,只是当你添加一个:-)刚刚选中,两者都不是我的。是的,当你“更改”折扣时,我没有考虑“仅当您添加一个时,折扣:-)顺便说一句,不要依赖于它的功能正确性。键入折扣、使用退格删除并再次键入将扣除这两个金额。我认为加比的答案更正确。顺便说一句,不要依赖它来判断函数的正确性。键入折扣、使用退格删除并再次键入将扣除这两个金额。我认为加比的答案更正确
function onCheck() {
    var t_balance = 0;
    $("input[type=checkbox]:checked").each(function() {
        t_balance += parseFloat($(this).attr("alt"));
    });
    $("#t_balance").html(t_balance.toFixed(2));
}

function calculateSum() {
    var sum = 0;
    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    $("#t_balance").html(sum.toFixed(2));
}
$("input[type=checkbox]").change(function() {
    onCheck();
});

$(":text").each(function() {
    $(this).keyup(function() {
        calculateSum();
    });
});
function onCheck() {
    var t_balance = 0;
    $("input[type=checkbox]:checked").each(function() {
        t_balance += parseFloat($(this).attr("alt"));
    });
    $("#t_balance").html(t_balance.toFixed(2));
}

function calculateSum() {
    var sum = 0;
    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    $("#t_balance").html(parseFloat($("#t_balance").text())-sum.toFixed(2));
}
$("input[type=checkbox]").change(function() {
    onCheck();
});

$(":text").each(function() {
    $(this).keyup(function() {
        calculateSum();
    });
});
function calculateSum() {
    var sum = 0;
    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum += parseFloat(this.value);
        }
    });
    $("#t_balance").html(($("#t_balance").html()-sum).toFixed(2));
}
function onCheck() {
    var t_balance = 0;
    $("input[type=checkbox]:checked").each(function() {
        t_balance += parseFloat($(this).attr("alt"));
    });
    $("#t_balance").html(t_balance.toFixed(2));

    calculateSum();
}

function calculateSum() {
    var sum = parseFloat( $("#t_balance").text() );

    $(":text").each(function() {
        if (!isNaN(this.value) && this.value.length != 0) {
            sum -= parseFloat(this.value);
        }
    });
    $("#t_balance").html(sum.toFixed(2));
}

$("input[type=checkbox]").change(onCheck);
$(":text").keyup(onCheck);