【js】alert事件点击确认后指定input恢复焦点
2017-06-15 14:21
507 查看
之前有那么一个需求,在点击alert之后让input获取焦点,试了很久搞出这个方法,有更好的方法请留言哈哈
在需要生效的页面的js中创建一个js对象
然后新建一个方法.当浏览器发生点击事件,那么检查alert框是否存在,不存在的情况需要检查是否要启动恢复焦点,这个由标识符,refoucs对象的status值决定,当为0时不执行,为1的时候执行,操作的对象就是id所在的元素.
然后在你需要生效的地方后面改变refoucs对象即可
我这里的设计是只有一个生效的标识符,直接让input清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.
在需要生效的页面的js中创建一个js对象
var refocus = new Object(); refocus.status = 0; //初始化为0,表示不生效 refocus.id = ''; //需要恢复焦点的元素id
然后新建一个方法.当浏览器发生点击事件,那么检查alert框是否存在,不存在的情况需要检查是否要启动恢复焦点,这个由标识符,refoucs对象的status值决定,当为0时不执行,为1的时候执行,操作的对象就是id所在的元素.
function setFocus() { $(window).on('click', function() { //判断alert框是否存在,这里的can是alert的父元素,实际父元素以自己F12看到的为准 var alertExist = $('#can').children().length > 0; if (!alertExist) { if (refocus.status == 1) { //我这里设定的1是需要恢复焦点的标识符 $('#'+refocus.id).val('').focus(); refocus.status = 0; } } }); }
然后在你需要生效的地方后面改变refoucs对象即可
alert('我是一个警告框'); //警告框后面修改 refocus.status = 1; refocus.id='xxx'; //需要恢复焦点的input的id //也可以直接设定一个方法 function setRefocus(id) { refocus.status = 1; refocus.id = id; } //然后在alert后面直接调用这个方法即可 alert('我是一个警告框'); setRefocus('xxx');
我这里的设计是只有一个生效的标识符,直接让input清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.
相关文章推荐
- input中blur失去焦点事件与点击事件冲突的解决方法
- Js先触发失去焦点事件再执行点击事件解决方法
- JS,JQ及时监听input值的变化,MUI的input搜索框里的清除按钮的点击监听事件
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
- Js调用指定空间的点击事件
- js 各种事件 如:点击事件、失去焦点、键盘事件等
- 解决Js先触发失去焦点事件再执行点击事件的问题
- js实现input文本框点击时文字消失,失去焦点时文字出现
- Js先触发失去焦点事件再执行点击事件解决方法
- js动态创建input元素,增加点击事件遇到的问题
- Jquery php 点击td变成input,修改后失去焦点发送数据
- Jquery php 点击td变成input,修改后失去焦点发送数据
- js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
- Jquery php 点击td变成input,修改后失去焦点发送数据
- 窗体上有一个TreeView和若干个TextBox控件,我希望当点击treeview中的某个节点时能让指定的TextBox得到焦点。
- 还是一个鼠标点击td变成input,失去焦点更新数据库
- input表单文本内容鼠标点击消失,鼠标移走恢复
- JavaScript 相关 —— 向页面写JS以alert信息、通过对地址栏赋值转到指定页、注册Js到Body的开始部分、注册Js到Body的结束位置
- 还是一个鼠标点击td变成input,失去焦点更新数据库
- 一个封装的在后台弹出JS Alert消息和JS confirm信息以及跳转到指定的页面