Android input输入框 移动页面input手机键盘中的“搜索”按键

动页面input手机键盘中的“搜索”按键

满足以下几点机即可:

input type="search"
    放到form标签中
    使用action属性

<form action="." >
  <input type=‘search‘ />
</form>

注意:

如果只使用input type="search",而不放到form标签中,则显示“换行”;
如果放到form中,但是使用type="text",则显示“前往”;
如果放到form中,使用input type="search",但没有action属性,Android不会有问题,但在IOS8以上的系统中,键盘上仍不会显示“搜索”,而是显示“换行”。
回车事件

如果页面中不设置“搜索”按钮来触发搜索操作,而是当点击键盘中的“搜索”时就进行搜索操作。可以监听输入框的回车事件。比如在onKeyDown事件监听中,获取事件keyCode,判断是否输入“回车”(keyCode=13),然后再进行相关的搜索操作。
点击搜索之后页面自动刷新的问题

因为这个form中只有一个输入框,所以在输入框中输入回车时,页面会自动刷新。要避免此情况,可以在添加一个隐藏的input。

<form action="." >
  <input id="iptSearch" type=‘search‘ />
  <input type="text" style="display:none;"/>
</form>

输入框内的小叉X

type=“search”的输入框在获取到焦点后,默认会出现一个小叉叉,用于清空输入框中的内容,而且样式因浏览器而异。如果想要隐藏这个X,可以使用如下CSS:

input[type="search"]::-webkit-search-cancel-button{
    -webkit-appearance: none;
}

参考阅读:

Show ‘Search‘ button in iPhone/iPad Safari keyboard:
    https://stackoverflow.com/questions/4864167/show-search-button-in-iphone-ipad-safari-keyboard
    你不知道的input[type=search]: http://blog.csdn.net/xxxxxmiss/article/details/51534626
    HTML Button自动刷新页面的问题: http://blog.csdn.net/jrainbow/article/details/44978843

作者:Evelynzzz
链接:https://www.jianshu.com/p/f083f72db7cc
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

keyCode 事件属性

事件对象参考手册 事件对象
实例

获取按下的键盘按键Unicode值:
var x = event.keyCode;

x 输出结果为:
119   // 119 是字符 "w"

尝试一下 »

本文底部包含了更多实例。
定义和使用

keyCode 属性返回onkeypress事件触发的键的值的字符代码,或者 onkeydown 或 onkeyup 事件的键的代码。

两种代码类型的区别是:

字符代码 - 表示 ASCII 字符的数字
    键盘代码 - 表示键盘上真实键的数字

p>两种类型的值不是都相等的,例如小写字符 "w" 和大写字符 "W" 有相同的键盘代码,因为他们他们键盘上 ( "W" 代码为 "87"),但是它们有不同的字符代码,两个字符输出是不一样的( "w" 和 "W" 字符代码为 "119" 和 "87") - 查看以下实例可以更好的理解。

提示: 如果需要知道用户按下的是打印键 (如 "a" 或 "5"),建议使用 onkeypress 事件。如果需要知道用户按下的是功能键(如 "F1", "CAPS LOCK" 或 "Home") 可使用 onkeydown 或 onkeyup 事件。

注意: 在 Firefox 中,, keyCode 属性在 onkeypress 事件中是无效的 (返回 0)。浏览器兼容问题,可以一起使用 which 和 keyCode 属性来解决:
var x = event.which || event.keyCode;  // 使用 which 或 keyCode, 这样可支持不同浏览器

提示: 所有 Unicode 字符列表可查看我们的 完整 Unicode 参考手册。

提示: 如果你需要将 Unicode 值转换为字符,可以使用 fromCharCode() 方法。

注意: 该属性是只读的。

注意: which 和 keyCode 属性提供了解决浏览器的兼容性的方法,最新版本的 DOM 事件推荐使用 key 属性来替代该方法。

提示: 如果你想查看是否按下了 "ALT", "CTRL", "META" 或 "SHIFT" 键,可使用 altKey, ctrlKey, metaKey 或 shiftKey 属性。

语法
event.keyCode
技术细节
返回值:     数字,表示 Unicode 字符代码或 Unicode 键代码
DOM 版本:     DOM Level 2 Events

实例

使用 onkeypress 和 onkeydown 来演示字符代码与键盘代码的区别:

<input type="text" onkeypress="uniCharCode(event)" onkeydown="uniKeyCode(event)">

function uniCharCode(event) {
    var char = event.which || event.keyCode;
    document.getElementById("demo").innerHTML = "Unicode CHARACTER code: " + char;
}

function uniKeyCode(event) {
    var key = event.keyCode;
    document.getElementById("demo2").innerHTML = "Unicode KEY code: " + key;
}

当在键盘上按下 "a" 键 (不使用大写锁定), 输出结果如下:
Unicode 字符代码: 97
Unicode 键代码: 65

实例

如果按下 Esc 键弹出提示信息:

<input type="text" onkeydown="myFunction(event)">

function myFunction(event) {
    var x = event.keyCode;
    if (x == 27) {  // 27 是 ESC 键
        alert ("You pressed the Escape key!");
    }
}

实例

将 Unicode 值转换为字符 (不能用于功能键):
var x = event.keyCode;                // 获取 Unicode 值
var y = String.fromCharCode(x);       // 将值转换为字符
[参考](http://www.runoob.com/jsref/event-key-keycode.html)

js实现主动使input失去焦点

主要解决在手机端,input输入完成,键盘还是弹出状态。

var input = document.getElementById("your-input-id");
input.blur();

原文地址:https://www.cnblogs.com/xiaoshen666/p/10772858.html

时间: 2024-10-09 00:07:47

Android input输入框 移动页面input手机键盘中的“搜索”按键的相关文章

解决手机浏览器上input 输入框导致页面放大的问题(记录)

在微信手机页面开发当中,页面是没有问题的,但是当焦点在input输入框的时候,手机页面会自动放大. 加入以下代码在head 区,可解决此问题 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />

移动页面input手机键盘中的“搜索”按键

满足以下几点机即可: input type="search" 放到form标签中 使用action属性 <form action="." > <input type='search' /> </form> 注意: 如果只使用input type="search",而不放到form标签中,则显示"换行": 如果放到form中,但是使用type="text",则显示"

jquery实现input输入框实时输入触发事件代码 ---jQuery 中bind(),live(),delegate(),on() 区别

复制代码 代码如下: <input id="productName" name="productName" value="" /> 复制代码 代码如下: //绑定$('#productName').bind('input propertychange', function() {searchProductClassbyName();}); 复制代码 代码如下: searchProductClassbyName 为触发后调用的方法: 当

HTML5移动开发中的input输入框类型

HTML5规范引入了许多新的input输入框类型 在HTML5移动开发中,通过这些新的输入框类型来显示定制后的键盘布局,用户体验更好,更容易填写各种表单 本文中,实测手机为肾4S与米4 数字类型number 定义input类型为type="number"时,iOS显示数字.标点及符号键盘,Android显示拨号键盘.代码如下所示 1 <input type="number" id="number" name="number&quo

IOS 固定定位底部input输入框,获取焦点时弹出的输入法键盘挡住input

移动页面经常会做到这样一个效果,看下面的图片,重点就是那个固定定位的底部,里面有个input输入框,在输入字符的时候,安卓手机看着是完全没有问题! 1.页面没有点击底部input的初始状态 2.安卓手机下的样子,一切都是那么的正常,简直是完美. 3.ios手机下,就是这么任性,没有办法,完全挡着了,挡着了,挡着了...,必须把整个页面滑到最底下才能看见它,捉迷藏啊简直是. 不怕丢人的说,此问题遇见一年多了终于得到完美解决,更加精彩.更加狗血的是代码只有特么的一行! 请睁大眼睛看 <script

Android WebView 输入框键盘不弹出

问题 在Android中使用内嵌的WebView加载HTML网页时,如果html页面中存在输入框.那么在有些手机设备中,当输入框获取焦点时,系统输入法键盘无法正确弹出,从而无法完成正常的输入要求 在做APP时,自己也遇到了这个问题,以下是自己解决的方法,有可能不适合大家所遇到的情况,但值得借鉴~ WebView设置问题 有些时候我们设计的html页面并不能够很好的适应WebView,尤其我们的html页面是为PC浏览器设计的时候,当使用WebView来加载时,界面很可能会发生错乱,当input输

如何解决安卓手机键盘弹出将页面压缩

很多时候项目中我们需要用到输入框input,input聚焦时会调用手机键盘,这个时候我们如果当前页面最大元素宽高写的是实际像素,那是没有问题的,但是如果写的是百分百在安卓机上当前页面就会被向上压缩,但是移动端我们必须做成自适应,我们宽高不能写固定宽高的,那么该如何解决,首先我们可以获取当前手机设备的宽高,然后再给当前页面写宽高,同时加上position:fixed: <style> .page{ position:fixed; left:0; top:0; } </style> v

微信小程序组件解读和分析:十、input输入框

input输入框组件说明: 本文介绍input 输入框的各种参数及特性. input输入框示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <view class="content"> type:有效值:text 感觉没什么区别 <input  placeholder="type=text" type=

Android模拟屏幕点击input tap替代解决方案

动机解释 本来直接使用 adb shell -> input 即可模拟 键盘事件,触屏事件keyevent ,text,tap 但是手上的这台目标Android机4.0.3系统的input只支持text和keyevent,不支持tap,无法模拟触屏点击事件. usage: input [text|keyevent] input text <string> input keyevent <event_code> 于是开始寻找模拟触屏的替代解决方案. 最新的Android API