已经找到问题所在,当input组件 type = "text" 时,某些输入法比如 三星 、华为等,输入文字,其实是正在编辑状态,bindinput不触发事件,这种状态,当用户直接点击另外的输入框,就会导致没有获取到值。
正常情况下这样是可以获取到值的
是否可以优化为在编辑状态下,也触发bindinput事件,或者编辑状态下,不将输入内容显示在输入框中,如下图H5显示:
框架类型 | 问题类型 | API/组件名称 | 终端类型 | 操作系统 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|---|
小程序 | Bug | input | 客户端 | Android | 6.6.8 | 2.2.0 |
4 个回答
我遇到的问题是,开发者工具,真机调试都没有问题,然后发布体验版之后,IOS正常,安卓就取不到值
<
input
class
=
"weui-input vcode"
bindinput
=
"inputCaptcha"
bindblur
=
"inputCaptcha"
confirm-type
=
"done"
bindconfirm
=
"loginSubmit"
placeholder
=
"验证码"
/>
遇到同样的问题,加上`bindblur`只能解决部分问题
比如我输完验证码,还没失去焦点,就去点击提交按钮,这时会先触发登录,才触发bindblur,而且根本不触发bindinput,导致取不到验证码的输入内容
使用的Gboard输入法
有官方的解决方案吗@那个很帅的小白
我也遇到了同样的问题,把这个换成表单提交,就能拿到输入的值了
有的地方换成了表单提交,但某些业务无法支持的,比如需要两个输入框都是输入状态,才能使按钮可用,就是在bindInput去判断的,当某些输入法在编辑状态下,bindinput没有回调,用户以为他已经输入,但按钮还是置灰状态,然后就认为这是个bug。虽然只要失去焦点触发bindblur就可以让按钮可用,但体验上还是有点问题
那你这个交互目前看来是无法满足,改一下交互吧。。。。。。
input 上面加上方法不就可以了 bindinput='getInput'
打错了,就是bindInput方法
bindblur 输入框失去焦点时触发,试试这个方法
已经加过了,但是某些场景还是无法满足。 比如用户在编辑状态输入之后,直接点击发送验证码,这个时候bindblur也没触发,就会导致第一次没获取到值,第二次再点击就会获取到值。 还有一些其他场景也不能满足,编辑状态下的触发事件机制还是有点问题。
给发送验证码按钮加个200毫秒的延时,延时响应
实在不行,你自己用text来写吧