-1

请查看我有什么

$("#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);
});

演示:http: //jsfiddle.net/nZ9J8/1/

我想从多个下拉列表和一个复选框中更新输入文本框的值。

首先,我不希望它在每次进行不同的下拉选择时继续添加和添加。

这里是故障...

复选框 = 未选中时为 0,选中时为 2

下拉菜单有 0、1、2、3 和 4

下拉菜单二有 0、1、2、3 和 4

输入文本框应该是复选框+下拉一+下拉二

如果选中了复选框并且在两个下拉列表中都选择了 2,那么它应该是 2 + 2 + 2 应该使文本字段为 6。

如果未选中复选框,并且在下拉列表一中选择了 1,并且在下拉列表二中选择了 3,则它是 0 + 1 + 3,它应该使文本字段为 4。

诀窍是如果一个人改变主意并更改复选框或下拉菜单,则文本字段应根据需要相应地向上或向下更新。

4

1 回答 1

1

尝试这个。http://jsfiddle.net/BxSU6/19/

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();
});`
于 2013-10-25T02:30:26.150 回答