首页 > jQuery 如何实现两个select 的option值相加?

jQuery 如何实现两个select 的option值相加?

比如我有这样两个下拉菜单 我想实现相加的效果 意思就是说比如我点击第一个下拉菜单的某个时 把值赋给文本框,然后我在点击第二个下拉菜单的某个时 同样也是把值赋给文本框 但是我想实现他们value值相加的效果 想请问下怎么实现
描述不好的话,请多多指教


    var tt = $("#text")
    $("#Numbers1").change(function(){
        var tt_val = parseInt(tt.val());
        var num1 = tt_val + parseInt($(this).find("option:selected").val());
        tt.val(num1)
    })
    $("#Numbers2").change(function(){
        var tt_val = parseInt(tt.val());
        var num2 = tt_val + parseInt($(this).find("option:selected").val());
        tt.val(num2)
    })

应该差不多就是这样,思路就是监听select的变化,取到selected的值,然后填充到文本框。
填充前,要先读取文本框里的数值,加上取到的值,就行了。

ps:取文本框值之前要先进行判断为空就让tt.val()等于0,selected的null,也做个判断,让null=0


(function(){
    var $targetInput = $('input.target'),values = {};
    function setVal(){ //循环读取values对象的所有属性,加起来,兼容以后增加select的情况。
        var val = 0;
        for(var k in values){
            val += values[k];
        }
        $targetInput.val(val);
    }
    $('#Numbers1,#Numbers2').change(function(){ //select的值有改变的时候,把改变后的值全局保存到values对象里,key为select的name,以免之后重复叠加。
        var $this = $(this),name = $this.attr('name');
        values[name] = $this.val();
        setVal();
    });
}());
【热门文章】
【热门文章】