首页 新闻 会员 周边 捐助

微信小程序怎样保存input值让它与下一个input值相加

0
悬赏园豆:15 [已解决问题] 解决于 2018-02-10 17:30

小程序中,有多个input输入框,每个框上都绑定了bindchange事件,怎样在每输入一个值后保存与后面一个值相加,以此类推,显示在页面

小西子的主页 小西子 | 初学一级 | 园豆:72
提问于:2018-02-09 16:08
< >
分享
最佳答案
0

<view>
<input value='0' type="number" bindblur="inputB" data-iname='input1' ></input>
<input value='0' type="number" bindblur="inputB" data-iname='input2' ></input>
<input value='0' type="number" bindblur="inputB" data-iname='input3' ></input>
<input value='0' type="number" bindblur="inputB" data-iname='input4' ></input>
<button bindtap='cal'>总计</button> <text>{{count}}</text>
</view>
 
 
Page({
data: {
count:0,
all:{}
},
cal:function(){
var count = 0;
var all = this.data.all;
for(var i in all){
count += Number(all[i]);
}
 
this.setData({
count: count
});

console.log(this.data.count, count, all);
},
inputB:function(e){
var all = this.data.all;
var iname = e.target.dataset.iname;
all[iname] = e.detail.value;
this.setData({
all:all
});
},
onLoad: function () {
 

},
onReady:function(){

}
})
 
收获园豆:10
muamaker | 小虾三级 |园豆:763 | 2018-02-10 14:57

谢谢,这个能不能让input框失去焦点之后,自动和上一个input值相加了,不用点击

小西子 | 园豆:72 (初学一级) | 2018-02-10 15:21

@小西子: 


Page({
data: {
count:0,
all:{}
},
inputB:function(e){
var all = this.data.all;
var iname = e.target.dataset.iname;
var count = 0;
all[iname] = e.detail.value;

for (var i in all) {
count += Number(all[i]);
}

this.setData({
all: all,
count: count
});
},
onLoad: function () {
 

},
onReady:function(){

}
})
muamaker | 园豆:763 (小虾三级) | 2018-02-10 15:42

@muamaker: 谢谢,谢谢,原来那个是要设一个全局变量啊,我一直是局部变量,怪不得每次触发都会清零,谢谢啦

小西子 | 园豆:72 (初学一级) | 2018-02-10 15:51
其他回答(2)
0

官网不是有教程吗?

收获园豆:1
~扎克伯格 | 园豆:1923 (小虾三级) | 2018-02-09 16:21

官网没有这个吧,因为每个input框都绑定了bindchange,每个都触发了,前一个框的数据就没了,就是不知道怎样把上一个数据保存

支持(0) 反对(0) 小西子 | 园豆:72 (初学一级) | 2018-02-09 16:34
0
 <div style="padding-bottom: 20px;padding-right: 20px;">
        <input type="text" name="cl"/>
        <input type="text" name="cl"/>
        <input type="text" name="cl"/>
        <input type="text" name="cl"/>
        <input type="text" name="cl"/>
        <input type="text" name="cl"/>
        总计: <span id="tatolCount"></span>
    </div>
    <script>

        $(function () {
            $("input[name='cl']").live("change", function () {
                var totalCount = 0;
                $("input[name='cl']").each(function (i) {

                    if ($(this).val() != "" && $(this).val() != null) {//这里可能不严谨,你可以判断当前的值是否为数字
                        totalCount += parseInt($(this).val());
                        //alert(totalCount);
                    }

                });
                $("#tatolCount").html(totalCount);
            });

        });
    </script>

我在本地测试没有问题的,希望能帮到你

收获园豆:4
魂心 | 园豆:99 (初学一级) | 2018-02-09 18:22

小程序里好像不能用这种方法,我就是不知道怎样在触发之后怎样把值保存下来

支持(0) 反对(0) 小西子 | 园豆:72 (初学一级) | 2018-02-10 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册