1.首先在前台页面单选按钮的value的值上绑定两个属性选项及对应的分数值。
<swiper-item> <view class='tq'>{{item.xh}}.{{item.content}}</view> <radio-group class="radio-group" bindchange="radioChange" data-id="{{item.id}}"> <label class="radio"> <radio value="a#{{item.scorea}}"/>{{item.itema}} </label> <label class="radio"><radio value="b#{{item.scoreb}}" />{{item.itemb}} </label> <label class="radio" wx:if="{{item.itemc!=''}}"> <radio value="c#{{item.scorec}}" />{{item.itemc}}</label> <label class="radio" wx:if="{{item.itemd!=''}}"> <radio value="d#{{item.scored}}" />{{item.itemd}}</label> </radio-group> </swiper-item>
2.在js文件中为radiochange时间写一个事件函数。
radioChange: function (e) { var id = e.currentTarget.dataset.id; var value = e.detail.value; var arr = value.split("#"); var _answer = this.data.answer; _answer[id] = arr[0]; var _score = this.data.score; _score[id] = arr[1]; this.setData({ answer: _answer , score : _score}); var len=0; for(var i in _answer){ len++; } if(len<this.data.count){ this.setData({btn_disabled:true}); }else{ this.setData({btn_disabled:false}); } },
在data中写两个数组为空answer跟score,在radiochange中得到e.detail.value这是得到前台页面的value绑定的值得到的数据为'b#8'这种类型但是还要进一步的处理应该分割字符串。在js中分割字符串应该用split来分割。
在submit事件函数中应该写一个得到成绩的方法,代码如下
submit:function(e){ var _score=0; for(var i in this.data.score){ _score+=parseInt(this.data.score[i]); } }) },在点击提交按钮是出现单选按钮的分数及选项