首先先将input 设置为readonly="readonly"状态
input添加点击事件click(防止多次点击唤出软键盘) 后在input readonly 状态下聚焦
let ele = document.getElementById(`no${index}`)
ele.setAttribute('readonly', 'readonly')
if (ele) {
ele.focus()
ele = null
}
聚焦后利用setTimeout延迟再将readonly 属性移除
setTimeout(()=>{
let ele = document.getElementById(`no${index}`)
if(ele){
ele.removeAttribute('readonly')
ele = null
}
},200)
总的来说就是先readonly 再聚焦 紧接着再移除 readonly
input 初始创建的时候最好直接是readonly 状态
如果初始不是readonly,页面渲染后js动态将input变成readonly ,再执行 focus操作。 有兼容性,部分型号的手机软键盘还是会唤起