Skip to content

IOS 系统验证码自动填充两次问题

问题

BUG:IOS 系统内获取验证码,点击输入时会自动被复制两遍到输入框内。

问题产生

这应该是个 IOS 系统 BUG,要不就是 weixin 浏览器内核的问题。(PS:这不是前端的问题 😈)

导致验证码信息到达之后会重复触发 UITextFieldTextDidChangeNotification 监听事件,验证码复制了两次。

解决方法

因为这是个不可抗力原因导致,我们无法为其做完美的优化。

只能限制 input 的最大字符输入长度。设置属性 maxlength="6"

但是当 inputtype 类型为 number 时,maxlength="6" 就不起作用了,这个时候需要在 input 里添加属性:oninput="if(value.length>6) value = value.slice(0,6)"

html
<input
  type="text"
  placeholder="请输入短信验证码"
  maxlength="6"
  oninput="if(value.length>6) value = value.slice(0,6)"
/>

Released under the MIT License.