您的位置:首页 > Web前端 > JavaScript

【js】alert事件点击确认后指定input恢复焦点

2017-06-15 14:21 507 查看
之前有那么一个需求,在点击alert之后让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清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐