收藏
回答

ios下input输入框不能正常失焦?

组件:vant的field组件

使用场景:根据数据渲染输入框,单选框,多选框等控件,为保持样式统一,都使用用field展示,选择框设置readonly属性,点击时侯触发pop弹出

出现问题:在点击了一个输入框之后,后续点击readonly的field框时,ios下不能正常失焦

兼容处理:ios端,在点击输入框的时侯,先把当前行的focus改为true,其他行改为false,再临时把当前行的readonly为false,50ms后再改回

目前问题:之前这种写法时可以的,但是两个月前突然失效了,经过测试,发现ios端可以正常失焦了,兼容处理后反而有其他问题,就注释掉了相关代码,但是前几天ios端又不能正常失焦了,兼容代码如下

      if (this.data.platform !== 'ios'return
       let obj = {}
       for (let i = 0; i < this.data.pageData.body[templateIndex].configData.list.length; i++) {
         const key = `pageData.body[${templateIndex}].configData.list[${i}].configData.focus`
         obj[key] = index === i
       }
      const key = `pageData.body[${templateIndex}].configData.list[${index}].configData.readOnly`
      this.setData(data.readOnly ? { [key]: false } : {}, () => {
        this.setData(obj, () => {
          data.readOnly && setTimeout(() => {
            this.setData({
              [key]: true
            })
          }, 50);
        })
      })
回答关注问题邀请回答
收藏

1 个回答

  • Cjiang
    Cjiang
    2021-04-20

    你好,请移步vant社区讨论

    2021-04-20
    有用
    回复
登录 后发表内容