折腾:
【记录】用小程序实现测评系统的前端页面
期间,接着要去实现,对于选项:
- 没选择,提交按钮是灰色,表示不能提交
- 当选中后,提交按钮才亮色,表示允许点击提交
【总结】
最后用代码:
pages/question/question.js
Page({ /** * 页面的初始数据 */ data: { ... isAllowSubmit: false, }, getNextQuestionSuccessCallback: function (response) { ... this.setData({ ... }) this.updateSubmitButton() } } }, updateSubmitButton: function(){ var isFoundSelected = false for( var curOption of this.data.firtQuestonOptions){ if (curOption.selected) { isFoundSelected = true break } } console.log("isFoundSelected=%s", isFoundSelected) this.setData({ isAllowSubmit: isFoundSelected }) }, singleOptionClicked: function(e){ ... this.updateSubmitButton() this.setData({ firtQuestonOptions: newOptionList, }) }, submitQuestion: function(e){ console.log("submitQuestion: e=%o", e) console.log("this.data.isAllowSubmit=%s", this.data.isAllowSubmit) if (this.data.isAllowSubmit) { common.gotoNextQuestion(this.data.curEvalId) } else { wx.showToast({ icon: 'none', title: app.globalData.NoticeAfterSelectCanSubmit, duration: 1500 }) } },
app.js
... NoticeAfterSelectCanSubmit: "请点击选项后才能提交哦",
pages/question/question.wxml
<view class='operation'> <button wx:if="{{isShowSkip}}" class="skip_button" bindtap="skipQuestion">我不会</button> <button class="submit_button {{isAllowSubmit ? '' : 'submit_button_disabled'}}" bindtap='submitQuestion'>提交</button> </view>
pages/question/question.wxss
.submit_button_disabled { /* https://htmlcolorcodes.com */ background: #808B96; }
可见,其中也证明了,对于条件渲染中,是支持:
class="submit_button {{isAllowSubmit ? '' : 'submit_button_disabled'}}"
的写法,去实现:
根据布尔变量是或否,决定是否添加额外的style
效果:
最开始没有选择任何选项,按钮是(带submit_button_disabled的style的background的)灰色的
点击提交按钮后,会提示:
点击任何一个选项后,按钮就:变蓝色,可以点击切换到下一页了
转载请注明:在路上 » 【已解决】小程序中根据是否选中选项决定提交按钮背景色和是否允许提交