微信小程序实现答题样式1(显示题目)

今天群里有人问了一个问题,怎么实现单选题和多选题在单击时选中,想着反正也没啥事,就写个demo试试看,代码如下:

首先在data里面添加问答题,如下:

data: {
    quest: [{
      id: 1,
      type: 1, //类型,1.单选,2.多选
      question: "1.你有女朋友吗?(单选)",
      answers: [{
        content: 'A.有'
      }, {
        content: 'B.没有'
      }]
    }, {
      id: 2,
      type: 1,
      question: "2.目前薪资在哪个范围?(单选)",
      answers: [{
        content: 'A.3-6k'
      }, {
        content: 'B.6-8k'
      }, {
        content: 'C.8-10k'
      }, {
        content: 'D.10k以上'
      }]
    }, {
      id: 3,
      type: 2,
      question: "3.你喜欢哪一种编程语言?(多选)",
      answers: [{
        content: 'A.Java'
      }, {
        content: 'B.C语言'
      }, {
        content: 'C.PHP'
      }, {
        content: 'D.Python'
      }, {
        content: 'E.JavaScript'
      }, {
        content: 'F.其他'
      }]
    }]
  },

然后在wxml文件里面显示问答题,代码如下:

<view class='quest_container' wx:for="{{quest}}" wx:key="id" wx:for-index="outterIndex">
  <text>{{item.question}}</text>
  <view wx:for="{{item.answers}}" wx:key="content" bindtap="answerSelected" data-outidx='{{outterIndex}}' data-idx="{{index}}" class="item {{item.selected?'active':''}}">
    <text>{{item.content}}</text>
  </view>
</view>

对应的绑定事件如下:

answerSelected(e) {
    let outidx = e.currentTarget.dataset.outidx;
    let idx = e.currentTarget.dataset.idx;
    let question = this.data.quest[outidx];
    if (question.type == 1) {
      //单选
      for (let item of question.answers) {
        item.selected = false;
      }
      question.answers[idx].selected = true;
      this.setData({
        quest: this.data.quest
      });
    } else if (question.type == 2) {
      //多选
      question.answers[idx].selected = !question.answers[idx].selected;
      this.setData({
        quest: this.data.quest
      });
    }
  },

最终效果如下:

 

微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序源码(含截图)库:项,切换至下一题微信小程序
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值