收藏
回答

表单按钮文字能setdata,但真机不能渲染?

加载页面时判断用户是否填写过表单,填写过则表单为不可编辑状态,按钮文字为‘编辑’,点击按钮后表单可编辑,按钮文字变为‘提交’

以前按钮在表单后面,是没问题的,后来表单太长,我把按钮固定在页面下方,就出现了问题:真机调试中,即使用户填写过表单,表单是不可编辑状态,但按钮文字为‘提交’

下图是模拟器中,已经填写过的用户画面

点击编辑后:

下图是真机调试,已经填写过的用户画面,数据能回显,说明setdata没有问题,但文字显示为‘提交’

在真机调试appData中也确认过,此时buttonText是‘编辑’

以下是相关代码

wxml:

<cover-view class="bottom">
  <button class="submit" form-type="submit">{{buttonText}}</button>
</cover-view>


wxss:

.bottom{
    width:100%;
    height:100px;
    bottom:0;
    background-color: white;
    position: fixed;
    padding-bottom20px;
    padding-top:20px;
    z-index:99;
}

.submit{
    bottom0;
    left0;
    right:0;
}


js:

Pages({
  data:{
    buttonText:'提交',
  }
  btnSub(res){
    //如果表单处于不可编辑状态,点击按钮变成可编辑状态,按钮文字从‘编辑’改成‘提交’
    if(edit_disabled==true){
      this.setData({
        edit_disabled:false
        buttonText:'提交',
      })
    }
  }
   //加载页面时,判断用户是否曾经填写表单,若填写过则显示表单项,按钮文字设为‘编辑’,若未填写则不对按钮文字作修改
  onLoad(options){
    let that=this;
    const db=wx.cloud.database();
    wx.cloud.callFunction({
      name:'getOpenId',
      success(res){
        var openid=res.result.openid
        db.collection('db').where({
          _openid:openid
        }).get().then(res=>{
          if(res.data.length>0){
            that.setData({
              phone:res.data[last].phone,
              buttonText:'编辑',
              edit_disabled:true,
            })
          }
        })
      }
    })
  }
})   



回答关注问题邀请回答
收藏

2 个回答

  • Demons
    Demons
    2023-03-31

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2023-03-31
    有用
    回复 1
    • 大貞子
      大貞子
      2023-03-31
      这部分是基于云数据库是否存在数据判断的,代码片段又不能用云开发
      2023-03-31
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-03-31

    这种肯定是你代码的问题

    2023-03-31
    有用
    回复
登录 后发表内容