在项目需求中,有需要用到输入框在进入这个页面的时候就自动定位获取这个输入框的焦点。
查了许多资料,也问了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. anaconda及jupyter notebook的使用之numpy模块的用法(2)

    今日内容概要 numpy模块结束 ndarray创建 numpy内置方法 索引与切片(花式索引.布尔索引) 常用函数 统计方法 随机数 numpy的内置方法 import numpy as np 1. ...

  2. qt(二)

    主程序入口: #include <iostream> #include <QApplication> #include "MainWindow.h" int ...

  3. WPF-ListView单元格设置文字换行

    第2-6行 1 <ListView Name="HumidifyEventLog" Style="{StaticResource ListViewStyle}&qu ...

  4. 使用PostgreSQL 脚本导出数据库的DDL

    使用PostgreSQL 脚本导出数据库的DDL 本文主要介绍如何使用基于 PostgreSQL pgdump编写的自定义脚本来导出数据库的DDL. 一.文件说明: 1.pgdump基础语句.sql: ...

  5. LGP4714题解

    没意思啊 题意:求 \(1^{k+2}(n)\),其中规定 \(1^k\) 在 \(k=1\) 时为 \(1\),在 \(2 \leq k\) 时为 \(1 * 1^{k-1}\)(* 为狄利克雷卷积 ...

  6. zabbix图形中文乱码

    别的贴子都是说到修改/usr/share/zabbix/include/defines.inc.php中的 define('ZBX_FONT_NAME', 'msyh'); define('ZBX_G ...

  7. dev编译器兼容设置及字符串的识别问题

    #include<bits/stdc++.h> using namespace std; bool cmp(char a,char b) { return a>b; } //int ...

  8. 常用写法java

    迭代器遍历[List.Set.Map] 遍历List方法一:普通for循环 1 for(int i=0;i<list.size();i++){//list为集合的对象名 2 String tem ...

  9. 解释AOP?

    面向切面的编程,或AOP, 是一种编程技术,允许程序模块化横向切割关注点,或横切典型的责任划分,如日志和事务管理.

  10. 什么是 FreeMarker 模板?

    FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构进行动态网页生成.使用 Freemarker 的主要优点是表示层和业务层的完全分离.程序员可以处理应用程序代码, ...