页面元素

<input type="text" ref="elInput"/>

<div
style="margin-top:20px;"
@click="confession()"
ref="elBtn">点击使input聚焦
</div>

js代码

methods(){
confession(){
this.$refs.elInput.focus()//显示键盘
}
}

上述代码在是有效的,但是对于input元素不是一直存在页面上,是动态显示的,上述方法就会失效

页面元素

<input v-show="isShow" type="text" ref="elInput"/>
<div
style="margin-top:20px;"
@click="confession()"
ref="elBtn">点击使input聚焦
</div>

js代码

data() {
return {
isShow:false
}
}, methods(){
confession(){
this.isShow=true
this.$nextTick(function(){
this.$refs.elInput.focus()//显示键盘
})
}
}

上述情况,ios下input聚焦是失效的,可以使用下面的方法(让input一直都在页面中)

将input写在页面上,利用定位给input显示在用户看不到的地方,当用户点击按钮时,将input定位到指定位置,显示出来

也可以将input透明度设为0,当用户点击按钮时,将input的透明对设为1

页面元素

<input :class="{'is-show':isShow}" type="text" ref="elInput"/>
<div
style="margin-top:20px;"
@click="confession()"
ref="elBtn">点击使input聚焦
</div>

js代码

data() {
return {
isShow:false,
}
}, methods(){
confession(){
this.isShow=true
this.$refs.elInput.focus()//显示键盘
}
} <style lang="less" scoped>
input{
position:relative;
left:-1000px;
}
.is-show{
left:0;
}
</style>

上面的方法验证成功,注意,confession方法里面的 this.$refs.elInput.focus()这句代码不能放在异步或函数里面,否则也会失效

原因在于ios有所限制:

寻常代码里的focus不会生效,除了在某个UI事件(例如click, touchend等)的直接执行环境中调用focus

注意这个直接环境,它的意思是如果你在setTimeout, promise等异步方式中执行了focus,依然是无效的。

ios上述限制是出于安全机制的考虑

ios上只有用户交互触发的focus事件才会起效,而延时回调的focus是不会触发的

最新文章

  1. 初探JavaScript(三)——JS带我&quot;碰壁&quot;带我飞
  2. LeetCode Burst Balloons
  3. JS一个根据时区输出时区时间的函数
  4. SqlServer中使用Select语句给变量赋值的时候需要注意的一个问题
  5. UVALive 7147 World Cup
  6. jQuery plugin
  7. 纯css3实现tab选项卡
  8. 选择客栈noip2011
  9. Go基础系列:接口类型断言和type-switch
  10. Zookeeper的一致性
  11. SQL语句简单笔记
  12. Rop框架学习笔记
  13. 腾讯云外网IP直通后,遇到网络问题
  14. 有关Struts下载文件时报错问题
  15. struts2.0自定义类型转换
  16. [Noi2017]整数 BZOJ4942
  17. SSIS 剖析数据流之:连接和查找转换
  18. hdoj Max Sum Plus Plus(DP)
  19. 第31次Scrum会议(11/19)【欢迎来怼】
  20. 78. Longest Common Prefix【medium】

热门文章

  1. sicily 1002 Anti-prime Sequences
  2. ES6 | 关于class类 继承总结
  3. hiho1605 - 递推+1000000000=矩阵快速幂
  4. HCF4094(CD4094)应用
  5. React 第三天
  6. How Javascript works (Javascript工作原理) (八) WebAssembly 对比 JavaScript 及其使用场景
  7. POJ-2752 Seek the Name, Seek the Fame 字符串问题 KMP算法 求前后缀串相同数木
  8. LCT复习
  9. mysql联查中使用if和group by会让你的结果不是你想要的
  10. 洛谷—— P2904 [USACO08MAR]跨河River Crossing