`

解决输入框失焦事件与按钮点击事件冲突的问题

阅读更多

在iPhone这样的移动端测试时,我们会发现onclick事件有大约半秒的延迟,这是因为iOS系统需要等待一段时间来判断用户是点击还是拖动,所以会有失焦与点击事件的冲突。

 

问题描述:

给一个输入框设置失焦事件之后,失焦事件总是优先其它事件先触发,导致输入完成之后点击提交按钮无效。

 

拓展:①mousedown:在用户按下了任意鼠标按钮时触发。不能通过键盘触发这个事件。

           ②mouseup:在用户释放鼠标按钮时触发。不能通过键盘触发这个事件。

 

解决方案:

方法1、通过给失焦事件设置延迟触发。

方法2、将按钮的点击(click)事件改为按下(mousedown)事件。

<!DOCTYPE html>  

<html lang="en">  

<head>  

    <meta charset="UTF-8">  

    <title>Title</title>  

    <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>  

    <style type="text/css">  

        .father{  

            width: 500px;  

            height: 300px;  

            background: green;  

            padding-top: 20px;  

        }  

        .father input {  

            width: 120px;  

            height: 28px;  

            border: 1px solid blue;  

        }  

        .father button{  

            width: 60px;  

            height: 28px;  

            margin-left: 10px;  

        }  

    </style>  

    <script>  

        function btn() {  

            alert("you click it");  

        }  

    </script>  

</head>  

<body>  

<div class="father" id="father" tabindex="1">  

    <input id="testInput" placeholder="请输入您的信息"><button id="testBtn" onclick="btn()">提交</button>  

</div>  

</body>  

<script>  

    //  鼠标按下事件  

    $("#testBtn").mousedown(function(){  

        alert("my button mousedown");  

    });       

    //  输入框失焦事件  

    $("#testInput").blur(function(){  

        alert("now blur  ~~~");  

    });  

    //  输入框失焦事件 延迟触发  

//    $("#testInput").blur(function(){  

//        setTimeout(function(){  

//            alert("now blur  ~~~");  

//        }, 300)  

//    });  

</script> 

</html>  

 

项目里还遇到一个问题,这里我是需要点击input框,弹出一个时间选择框。在IOS上发现点击input框后弹出时间选择框时,input会有焦点

$('#startDate').mousedown(function(e) {

          setTimeout(function(){  

               $("#startDate").blur();  

           }, 10);

});

 

 

 

 

.

分享到:
评论

相关推荐

    解决Js先触发失去焦点事件再执行点击事件的问题

    今天小编就为大家分享一篇解决Js先触发失去焦点事件再执行点击事件的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    输入法的回车与消息发送快捷键回车的冲突解决方法

    绑定keyup事件会将输入法中的英文文字输入到文字框并直接触发发送按钮 键盘事件: 当一个按键被pressed或者released,在每一个浏览器中都可能会触发三种键盘事件 keydown keypress keyup keydown事件发生在按键被按...

    filetool.exe_VC++6.0和Office2007或office2010不兼容问题解决办法

    其实这是微软公司的一个小小的失误,VC++6.0与office2007(2010)有冲突 FileTool.exe使用方法(详见压缩包得word文档): 1. 下载FileTool.exe,并解压2. 打开VC6.0,点击File-Open Workspace,选择刚解压出来的...

    Python tkinter教程-04:输入框

    Python tkinter教程-04:输入框 文章目录0 准备工作1介绍2 基本用法3 通用方法4 启用与禁用5 显示方法6 获取内容7 插入与删除字符8 清空字符9 初始化字符10 重置字符 0 准备工作 要使用,先导入:import tkinter as...

    Bootstrap官网教程整理

    避免命名空间冲突 201 事件 201 Bootstrap 过渡效果(Transition)插件 202 使用案例 202 Bootstrap 模态框(Modal)插件 203 用法 203 选项 206 方法 206 事件 208 Bootstrap 下拉菜单(Dropdown)插件 212 用法 ...

    金蝶K3日常问题解决手册

    第一章 k3的安装及卸载问题 7 1.1 K3安装所需要的环境 7 1.2 K3对于sql语言排序规则的要求 7 1.3 在安装SQL Server SP3,出现无论用windows认证还是混和认证,都出现密码错误的情况。查看临时目录下的sqlsp.out,...

    jquery.autocomplete 用户输入城市名、或拼音即可有匹配的提示

    猜想,是默认utf-8编码与我服务端过滤器中转码以及代码的转码发生了冲突。 2.当输入框值发生变化时,onchange事件不灵敏。 于是,添加了一个函数,输入值一但onchange就调用 。 onKeyProcessDefult: function(i...

    超实用的jQuery代码段

    11.4 解决jQuery版本冲突问题 11.5 如何设置IE特有的功能 11.6 判断浏览器类型并设置HTML元素内容 11.7 加载Google CDN的jQuery库 11.8 Cookies应用方法 11.9 使用cookie.js管理Cookies 11.10 让Cookies在N分钟后...

    FlashGet 3.0 beta2

    8.修改新建任务对话框,点击“浏览”按钮后,默认选中输入框中路径而不是默认路径 9.修改Vista下主菜单处显示为黑色的BUG 10.修改每次启动快车窗口会比上次退出的时候变大的BUG 11.修改快车启动时如果未选中"将快车...

    MAPGIS地质制图工具

    ③接着点击操作符区的运算符按钮,并且输入其值(比如ID==45)。确定后符合该参数条件的图元既被选中闪烁。例如:选择大于等于730高程值,且每隔20米的所以等高线。在表达式输入框中输入表达式:(高程-730)%20==0 。...

    jquery.HooRay 插件 jquery常用网页特效的封装

    隔行换色、无缝滚动、返回顶部、外链弹窗、手风琴、Tabs切换、锚点连接、多选按钮、单选按钮、控制多选按钮选择数量、下拉列表、图片缩放、高亮显示、图片展示、输入框文字提示等,其中大多数功能大家经常会用到,但...

    名片在线设计制作软件.exe

    6、部分德文与法文字母存在与中文简体编码冲突,请查看readme.txt文件中有关替代问题。 7、文学作品资料的作者朝代以他死亡为准,如张岱1597-1676归为清朝人士。先秦至清朝以前划为古代,清朝至1930年划为近代,...

    易语言程序免安装版下载

    修改扩展界面支持库一,解决树形框项目无法通过鼠标点击进入编辑状态的BUG。 6. 修改高级表格支持库,解决插入行/插入列在未指定行号/列号的情况下插入位置不正确的BUG。 7. 修改文本语音转换支持库,增加“机读...

    Cubic java应用诊断工具-其他

    6、然后将agentId 填入上面的输入框 点击connect 按钮重新加载,则进入当前应用的命令模式,输入3,切换到arthas 命令,就可以使用了。 Cubic java应用诊断工具 更新日志:v1.4.1deature:1、线程池监控2、protobuf...

    基于hhww改进版的传统五笔输入法(新版支持WIN7)

    解决切换到GB18030字符集时多重候选因范围检查可能造成的翻页死机问题(如海峰五笔输入fggg,oitk等编码): 0x03206: 833D BC1E 9273 0074 3483 ---&gt;&gt;&gt; 833D BC1E 9273 0472 3483 ==============================...

    基于hhww改进版的传统五笔输入法

    解决切换到GB18030字符集时多重候选因范围检查可能造成的翻页死机问题(如海峰五笔输入fggg,oitk等编码): 0x03206: 833D BC1E 9273 0074 3483 ---&gt;&gt;&gt; 833D BC1E 9273 0472 3483 ==============================...

    Lease-Wizard

    不幸的是,绝大多数租约都是用法律术语写成的长文件: 让人们对其合法权利和义务感到困惑或误解包含各方从未阅读过,模棱两可或可能不遵守法律的条款让人们感到脆弱和不安,增加冲突的风险我们的项目为房东和租户...

Global site tag (gtag.js) - Google Analytics