Javascript 如何在输入文本字段中添加和减去复选框中的值以及选择选项下拉列表?
请看我有什么Javascript 如何在输入文本字段中添加和减去复选框中的值以及选择选项下拉列表?,javascript,jquery,html,drop-down-menu,Javascript,Jquery,Html,Drop Down Menu,请看我有什么 $("#checkbox").change(function() { if ($('input#checkbox').is(':checked')) { var checkvalue = +$(this).val(), $boxInput = $('input[name="box"]'); $boxInput.val(+$boxInput.val() + checkvalue); } else { var checkvalue = +$(this).val(), $boxInput
$("#checkbox").change(function() {
if ($('input#checkbox').is(':checked')) {
var checkvalue = +$(this).val(),
$boxInput = $('input[name="box"]');
$boxInput.val(+$boxInput.val() + checkvalue);
} else {
var checkvalue = +$(this).val(),
$boxInput = $('input[name="box"]');
$boxInput.val(+$boxInput.val() - checkvalue);
}
});
$("#numbers").change(function() {
var firstdropvalue = +$(this).val(),
$boxInput = $('input[name="box"]');
$boxInput.val(+$boxInput.val() + firstdropvalue);
});
$("#morenumbers").change(function() {
var seconddropvalue = +$(this).val(),
$boxInput = $('input[name="box"]');
$boxInput.val(+$boxInput.val() + seconddropvalue);
});
演示:
我想从多个下拉列表和复选框中更新输入文本框值
首先,我不希望每次选择不同的下拉列表时都不断添加
这里是崩溃
复选框未选中时为0,选中时为2
下拉列表一有0、1、2、3和4
下拉列表2有0、1、2、3和4
输入文本框应为复选框+下拉列表一+下拉列表二
如果复选框被选中,并且在两个下拉列表中都选择了2,则文本字段应为2+2+2
如果复选框未选中,并且在下拉列表1中选择了1,在下拉列表2中选择了3,则0+1+3应成为文本字段4
诀窍是,如果一个人改变了主意,并更改了复选框或下拉列表,文本字段应该根据需要相应地更新,向上或向下移动。试试这个
不知道你在那里做了什么。只有勾选复选框时,这两个下拉列表才能进行正确的计算?下拉列表应该自己完成。复选框是一个独立的计算。我想我现在明白了。选中时,下拉列表将添加。如果不选中,则减去。那不是我想要的。无论复选框是选中还是未选中,这两个下拉列表都应该添加,但是,文本字段中的总和应该根据所选或选中或未选中的内容而上下浮动。谢谢,这似乎不错,但当我在实际应用程序中使用它,并且使用数字(如0.390)时,结果总和为0。你知道原因吗?如果你想让十进制数工作,请使用
parseFloat(num)代码>而不是parseInt(num)
出于好奇,如果我得到这个的总和:2.429999999997,我怎么能将它保持在小数点后3位?像这样:2.430或2.429(不管是否四舍五入,但四舍五入更好)
function calculate(){
var checkVal = ($('input#checkbox').is(':checked')) ? $('input#checkbox').val() : 0;
var sum = parseIntX($("#numbers").val()) + parseIntX($("#morenumbers").val()) + parseIntX(checkVal);
$('#box').val(sum);
}
function parseIntX(num){
return (isNaN(parseInt(num))) ? 0 : parseInt(num);
}
$("#numbers, #morenumbers, #checkbox").change(function() {
calculate();
});`