在项目需求中,有需要用到输入框在进入这个页面的时候就自动定位获取这个输入框的焦点。
查了许多资料,也问了ionic3的大神,现将知识点记录如下:

1、能不能直接设置ion-input的属性值来达到自动获取焦点的目的

使用autofocus="true"属性值
效果:
⑴在网页端浏览,可以自动获取焦点了,这个方式应该对只需要web端的同学有效。但使用ionic3框架的目的应该是为了制作移动端吧。
⑵在移动端可以获取焦点,但随后就失去焦点了。显然,移动端的获取焦点这个方式是不可行的。

2、代码设置获取焦点

这也是我找到设置焦点大多数人采用的方式。那么应该是找对方向了。
方式:总体思想,找到这个输入框节点,然后进行setfocus()获取焦点。
⑴网友的代码大同小异,但第一步肯定是在页面的html文件中加入输入框。我的案例代码如下:

<ion-input #productID id="user_name" placeholder="产品编号"style="padding-left: 15px"></ion-input>

⑵之后就是在页面的ts文件中对这个输入框进行焦点设置
①找到这个节点

@ViewChild('productID ') myInput ;

②对这个节点进行设置
在这里,分析目的:进入页面就获取焦点,这个应该是需要写在页面的生命周期即钩子里的。
这里有不同的写法,比如:ionViewDidLoad(),constructor(),ngOnInit()等等。这里主要介绍一下不同的页面,获取焦点不同的写法。
写在ionViewDidLoad()方法里,对于启动页的焦点获取可以实现。但当页面是进行跳转的页面时,这个方法要么没有获取焦点要么获取焦点一段时间后就失焦了。代码:


ionViewDidLoad() {
setTimeout(() => {
this.myInput.setFocus();//为输入框设置焦点
},150);
}

写在ionViewDidEnter()方法里,这个方法是当进入页面时触发。这个方法对于进行跳转的页面或启动页均有效。代码:


ionViewDidEnter() {
setTimeout(() => {
this.myInput.setFocus();//为输入框设置焦点
},150);
}

存疑:ionViewDidLoad估计是在应用启动的时候就已经全部加载了所有页面,之后在进行跳转的时候触发了其他的事件,所以导致的失焦。但这也是猜想,请大神多多指教。

ionic3 ion-input进入页面自动获取焦点的更多相关文章

  1. 苹果客户端input时页面自动放大的问题

    一.问题: 最近在用vue测试的时候发现,安卓端在输入框input时不存在页面自动缩放的问题,苹果客户端认为是考虑到用户的体验效果,才出现输入框自动放大的功能.但也收到了不少用户反馈体验效果不周. 二 ...

  2. jquery--blur()事件,在页面加载时自动获取焦点

    jquery--blur()事件会在页面加载时自动获取焦点,应将onblur写到html标签中 <div class="inputbox"> <input typ ...

  3. 页面一刷新让文本框自动获取焦点-- 和自定义v-focus指令

    <body> <div id="app"> <input type="text" value="" id=&q ...

  4. 移动端 mui框架中input输入框或任何输入框聚焦后页面自动上移

    一.mui框架中点击input后,安卓手机弹出自带的输入键盘时,页面自动上移 实现方法: (1)只要把input标签放在mui-content这个类里面就可以了 <div class=" ...

  5. vue动态设置Iview的多个Input组件自动获取焦点

    1.html,通过ref=replyBox设置焦点元素,以便后续获取 // 动态设定自动获取焦点按钮 <p class="text-right text-blue fts14 ptb1 ...

  6. 鼠标经过INPUT时自动获取焦点

    鼠标经过INPUT时自动获取焦点 <input type="text" name="addr" onMouseOver="this.focus( ...

  7. 移动端H5页面_input获取焦点时,虚拟键盘挡住input输入框解决方法

    在移动端h5开发的时候,发现如果input在页面底部,当触发input焦点的时候会弹出系统虚拟键盘,虚拟键盘会遮挡input输入框.这会很影响用户体验,于是在网上找到了如下的解决办法: 方法一:使用w ...

  8. 【小程序】bindconfirm点击小键盘触发事件、focus自动获取焦点

    最近在写小程序,项目要求写一个搜索框,在进入页面时就触发input的事件,调出键盘,点小键上的搜索按钮 就触发搜索事件,分享一下. bindconfirm 是点击小键盘上的搜索按钮就触发要执行的方法 ...

  9. 【前台页面 BUG】回车按钮后,页面自动跳转

    点击回车按钮后,页面自动的迅速跳转 原因: 表单隐式提交了. 解决方法: 在方法执行完成后,加上return false; 代码如下: /** * 注册按钮的点击事件 */ $("#regi ...

随机推荐

  1. 报错:net::err_unknown_url_scheme的解决办法

    在项目中设置了api请求和web页面请求的地址,如下图: 控制台报错,如下图: 问题是:没有加入"http://"这个头,因此访问不到. 解决办法: 再次访问正常

  2. pandas模块篇(之三)

    今日内容概要 目标:将Pandas尽量结束 如何读取外部excel文件数据到DataFrame中 针对DataFrame的常用数据操作 索引与切片 操作DataFrame的字段名称 时间对象序列操作 ...

  3. 计算机系统4-> 计组与体系结构1 | 基础概念介绍

    在大二上学期学习数字逻辑的过程中,我对计算机如何运作产生了兴趣,因此开了这个系列来记录自己在这方面的学习过程,此前三篇分别是: 计算机系统->Hello World的一生 | 程序如何运行,从大 ...

  4. JZ-061-序列化二叉树

    序列化二叉树 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树. 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存. 序 ...

  5. (转载)字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8

  6. 面试题详解:如何用Redis实现分布式锁?

    说一道常见面试题: 使用Redis分布式锁的详细方案是什么? 一个很简单的答案就是去使用 Redission 客户端.Redission 中的锁方案就是 Redis 分布式锁的比较完美的详细方案. 那 ...

  7. 201922904李龙威 2019-2020-2 《Python程序设计》实验二报告

    20192204 2019-2020-2 <Python程序设计>实验二报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...

  8. Eureka 基本教程

    目录 Eureka 基本教程 RestTemplate 使用 Eureka 使用 注册中心 提供者 消费者 Eureka 基本教程 RestTemplate 使用 学习Euraka的同学直接滑到最下面 ...

  9. 【自动化基础】allure描述用例详细讲解及实战

    前言 allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行.下面就对allure的使用进行一个详细的介绍和总结. 需要准备的环境: pyth ...

  10. ListBox 控件模板

    <Window x:Class="WpfApplication22.MainWindow" xmlns="http://schemas.microsoft.com/ ...