移动端 input 获取焦点后弹出带搜索、确定、前往的键盘,以及隐藏系统键盘

一:调出系统带回车键的键盘

  在项目中经常有输入框,当输入完成后点击确定执行相应的动作。但是有些设计没有确定或者搜索按钮,这就需要调用系统键盘,点击系统键盘的确定后执行相应动作。

但是单纯的input是无法实现的,要想调出带回车的键盘必须把input放在form表单里面才可以,并且得加上action(一定要加),下面是个简单的例子。

<form action class="search" onsubmit="return false;">
  <i class="fa fa-lg fa-search"></i>
  <input type="text" class="search-input" placeholder="搜索">
  <i class="fa fa-lg fa-times-circle clear-search"></i>
</form>

这里为了避免form提交带来的页面刷新加了个onsubmit="return false;"。

下图右图是按照上面写法出现的效果

                 

 如果需要调出“搜索”按钮只需要将type设置为search

详细的业务处理代码是这样的

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />
    <style>
    </style>
</head>

<body>
    <form id="test_form" action class="search" onsubmit="return checkForm()">
      <i class="fa fa-lg fa-search"></i>
      <input  id="pwd" type="search" class="search-input" placeholder="搜索">
      <i class="fa fa-lg fa-times-circle clear-search"></i>
    </form>
</body>
<script>
var form = document.getElementById('test_form');
function checkForm(){
    var pwd= document.getElementById('pwd');
    pwd.value= pwd.value;            
    alert(pwd.value)
    // 这里做逻辑处理
    return false;
}
</script>
</html> 

或者

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <script src="https://code.jquery.com/jquery-3.4.1.js"></script>
</head>
<body>
    <form id="myform" action="" onsubmit="return false;">
        <input id="myinput" type="search">
    </form>
</body>
<script>
//这两种都能用, 一个是在form上加id 一个是在input元素加id
//对于苹果手机添加一个form元素是必要的,否则只能实现功能但是键盘的文字不能变成搜索字样
    $('#myinput').on('search', function () {
        //coding
        alert(1);
    });
</script>
</html>

二:取消后隐藏系统键盘

  在PC上想取消光标,可以直接点击页面的其他任何部分,但是在手机上点击其他无绑定事件的部分是没法取消光标的。这里提供三个方法来

隐藏键盘,在项目上选择其中最简单的一个就可以。

  1. 最简单的的一个,直接 <a href="javascript:" class="search-close">取消</a>,点一下就可以了。

  2. 用js或者jq直接让输入框失去焦点就可以,这里需要绑定主动失焦事件了。

  3. 设置个非a标签的标签,随便绑定个点击事件就可以,哪怕方法里面什么都不写。

posted @ 2017-09-19 00:02  小兔额乖乖  阅读(1696)  评论(0编辑  收藏  举报