首页 > 代码库 > alert事件点击确认后指定input恢复焦点

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

  在需要生效的页面的js中创建一个js对象:

1 var refocus = new Object();
2 refocus.status = 0; //初始化为0,表示不生效
3 refocus.id = ‘‘; //需要恢复焦点的元素id

然后新建一个方法:

 1 function setFocus() {
 2     $(window).on(‘click‘, function() {
 3         var alertExist = $(‘#can‘).children().length > 0; //判断alert框是否存在
 4         if (!alertExist) {
 5             if (refocus.status == 1) { //我这里设定的1是需要恢复焦点的标识符
 6                 $(‘#‘+refocus.id).val(‘‘).focus();
 7                 refocus.status = 0;
 8             }
 9         }
10     });
11 }

上面的方法的意思是,当浏览器发生点击事件,那么检查alert框是否存在,不存在的情况需要检查是否要启动恢复焦点,这个由标识符,refoucs对象的status值决定,当为0时不执行,为1的时候执行,操作的对象就是id所在的元素.

然后在你需要生效的地方后面改变refoucs对象即可:

 1 alert(‘我是一个警告框‘);
 2 //警告框后面修改
 3 refocus.status = 1;
 4 refocus.id=‘xxx‘; //需要恢复焦点的input的id
 5 
 6 //也可以直接设定一个方法
 7 function setRefocus(id) {
 8     refocus.status = 1;
 9     refocus.id = id;
10 }
11 //然后在alert后面直接调用这个方法即可
12 alert(‘我是一个警告框‘);
13 setRefocus(‘xxx‘);

我这里的设计是只有一个生效的标识符,直接让input清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.

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