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]);
}
})
},
在点击提交按钮是出现单选按钮的分数及选项