收藏
回答

input渲染后动态更改type类型,从number更改为digit失败?

<!--index.wxml-->
<view class="container">
  <button bindtap="changeList">切换</button>
  <view class="list">
    <view class="list-item" wx:for="{{list}}" wx:key="{{index}}"><input type="{{item.type}}" /></view>
  </view>
</view>

/**index.wxss**/


.list-item{


  margin-top:20rpx;


}


.list-item input{


  display: block;


  width: 100%;


  height:60rpx;


  line-height: 60rpx;


  font-size: 40rpx;


  border:1px solid black;


}


//index.js


//获取应用实例


const app = getApp()




Page({


  data: {


    motto: 'Hello World',


    userInfo: {},


    hasUserInfo: false,


    canIUse: wx.canIUse('button.open-type.getUserInfo'),


    list:[


      {type:'digit',name:'测试'},


      {type:'digit',name:'测试'},


      {type:'number',name:'测试'},


      {type:'digit',name:'测试'},


      {type:'number',name:'测试'},


    ]


  },


  //事件处理函数


  changeList(){


    let list=this.data.list;


    list.forEach(tmp=>{


      tmp.type='number'


    })


    console.log(list);


    this.setData({


      list


    })


  },


  bindViewTap: function() {


    wx.navigateTo({


      url: '../logs/logs'


    })


  },


  onLoad: function () {


    if (app.globalData.userInfo) {


      this.setData({


        userInfo: app.globalData.userInfo,


        hasUserInfo: true


      })


    } else if (this.data.canIUse){


      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回


      // 所以此处加入 callback 以防止这种情况


      app.userInfoReadyCallback = res => {


        this.setData({


          userInfo: res.userInfo,


          hasUserInfo: true


        })


      }


    } else {


      // 在没有 open-type=getUserInfo 版本的兼容处理


      wx.getUserInfo({


        success: res => {


          app.globalData.userInfo = res.userInfo


          this.setData({


            userInfo: res.userInfo,


            hasUserInfo: true


          })


        }


      })


    }


  },


  getUserInfo: function(e) {


    console.log(e)


    app.globalData.userInfo = e.detail.userInfo


    this.setData({


      userInfo: e.detail.userInfo,


      hasUserInfo: true


    })


  }


})





demo复现问题:单机按钮,将表单类型从digit转化为number,数据是渲染成功了,但是真机调试,按钮键盘还是原来的digit,没有改为number,这是为什么

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

2 个回答

  • 2020-06-23

    你还不如使用if判断,准备多个input

    2020-06-23
    有用
    回复 1
    • 亚设
      亚设
      2020-06-24
      是的,我暂时也是这么解决地
      2020-06-24
      回复
  • 是小白啊
    是小白啊
    2020-05-18

    问题已知,我们尽快解决下

    2020-05-18
    有用
    回复 1
    • A 🤔 心之所向
      A 🤔 心之所向
      2020-05-22
      好几天了,麻烦尽快解决
      2020-05-22
      回复
登录 后发表内容
问题标签