收藏
回答

input组件Android bindinput无法获取到值 bug

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug input 客户端 Android 6.6.8 2.2.0

已经找到问题所在,当input组件 type = "text" 时,某些输入法比如 三星 、华为等,输入文字,其实是正在编辑状态,bindinput不触发事件,这种状态,当用户直接点击另外的输入框,就会导致没有获取到值。



正常情况下这样是可以获取到值的  



是否可以优化为在编辑状态下,也触发bindinput事件,或者编辑状态下,不将输入内容显示在输入框中,如下图H5显示:


最后一次编辑于  2018-08-07
回答关注问题邀请回答
收藏

3 个回答

  • 大面包⁶₆⁶
    大面包⁶₆⁶
    2018-11-23
    <input class="weui-input vcode" bindinput="inputCaptcha" bindblur="inputCaptcha" confirm-type="done" bindconfirm="loginSubmit" placeholder="验证码" />


    遇到同样的问题,加上`bindblur`只能解决部分问题


    比如我输完验证码,还没失去焦点,就去点击提交按钮,这时会先触发登录,才触发bindblur,而且根本不触发bindinput,导致取不到验证码的输入内容


    使用的Gboard输入法


    有官方的解决方案吗@那个很帅的小白

    2018-11-23
    有用
    回复
  • 可乐加冰
    可乐加冰
    2018-08-08

    我也遇到了同样的问题,把这个换成表单提交,就能拿到输入的值了

    2018-08-08
    有用
    回复 2
    • Patrick
      Patrick
      2018-08-08

      有的地方换成了表单提交,但某些业务无法支持的,比如需要两个输入框都是输入状态,才能使按钮可用,就是在bindInput去判断的,当某些输入法在编辑状态下,bindinput没有回调,用户以为他已经输入,但按钮还是置灰状态,然后就认为这是个bug。虽然只要失去焦点触发bindblur就可以让按钮可用,但体验上还是有点问题

      2018-08-08
      回复
    • 可乐加冰
      可乐加冰
      2018-08-08回复Patrick

      那你这个交互目前看来是无法满足,改一下交互吧。。。。。。

      2018-08-08
      回复
  • 无色
    无色
    2018-08-07

    input 上面加上方法不就可以了 bindinput='getInput'


    2018-08-07
    有用
    回复 5
    • Patrick
      Patrick
      2018-08-07

      打错了,就是bindInput方法

      2018-08-07
      回复
    • 无色
      无色
      2018-08-07回复Patrick

      bindblur  输入框失去焦点时触发,试试这个方法

      2018-08-07
      回复
    • Patrick
      Patrick
      2018-08-07

      已经加过了,但是某些场景还是无法满足。 比如用户在编辑状态输入之后,直接点击发送验证码,这个时候bindblur也没触发,就会导致第一次没获取到值,第二次再点击就会获取到值。 还有一些其他场景也不能满足,编辑状态下的触发事件机制还是有点问题。

      2018-08-07
      回复
    • 尚
      2018-08-07回复Patrick

      给发送验证码按钮加个200毫秒的延时,延时响应

      2018-08-07
      回复
    • 无色
      无色
      2018-08-08回复Patrick

      实在不行,你自己用text来写吧

      2018-08-08
      回复
登录 后发表内容