比如我有这样两个下拉菜单 我想实现相加的效果 意思就是说比如我点击第一个下拉菜单的某个时 把值赋给文本框,然后我在点击第二个下拉菜单的某个时 同样也是把值赋给文本框 但是我想实现他们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();
});
}());