在项目需求中,有需要用到输入框在进入这个页面的时候就自动定位获取这个输入框的焦点。
查了许多资料,也问了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. Python脚本生成可执行文件&(恋爱小脚本)

    Python脚本生成可执行文件&(恋爱小脚本) 参考文献: http://c.biancheng.net/view/2690.html; https://blog.csdn.net/qq_39 ...

  2. 修饰符-final

    Java是由C/C++泛生的,其也保留了C/C++的部分特性,如关键字.在C/C++中,关键字有着特殊的含义. final修饰符 在编程中,一般会存在一些变量或方法,程序员不让其数据"发生改 ...

  3. 【spring】事务底层的实现流程

    事务简单介绍 本文源码基于spring-framework-5.3.10. 事务是基于AOP的机制进行实现的! Spring事务基本执行原理 一个Bean在执行Bean的创建生命周期时,会经过Infr ...

  4. js location.href 和 php header 跳转方式

    if ($result){ echo '添加成功';// header('refresh:3,url=user_nameList.php'); echo "<script> al ...

  5. 全量、增量数据在HBase迁移的多种技巧实践

    作者经历了多次基于HBase实现全量与增量数据的迁移测试,总结了在使用HBase进行数据迁移的多种实践,本文针对全量与增量数据迁移的场景不同,提供了1+2的技巧分享. HBase全量与增量数据迁移的方 ...

  6. [ Shell ] 两个 case 实现 GetOptions 效果

    https://www.cnblogs.com/yeungchie/ 可以用 getopt,但我还是喜欢自己写这个过程,便于我够控制更多细节. 下面要实现的效果是,从命令行参数中分析,给 $libNa ...

  7. Spring系列26:Spring AOP 通知与顺序详解

    本文内容 如何声明通知 如何传递参数到通知方法中 多种通知多个切面的通知顺序 多个切面通知的顺序源码分析与图解 声明通知 Spring中有5种通知,通过对应的注解来声明: @BeforeBefore ...

  8. ssm 关于mybatis启动报Result Maps collection already contains value for ...的问题总结

    Result Maps collection already contains value for com.zhaike.mapping.ChapterMapper.BaseResultMap Err ...

  9. JDBC快速入门(附Java通过jar包连接MySQL数据库)

    •通过jar包连接mysql数据库 •下载jar包 Java 连接 MySQL 需要驱动包,官网下载地址为MySQL驱动包官网下载,选择适合的jar包版本进行安装 (记得安装的地址,下面导入包时会用到 ...

  10. NO Oracle database,JUST USE Oracle client。远程导入导出dmp

    序言: 你会发现,exp.exe 和imp.exe均存在于Oracle数据库的安装bin目录下.而很多情况下,我们不想安装庞大的Oracle数据库,但想使用imp和exp等工具命令,在我们本地机对Or ...