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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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恢复焦点的主要内容,如果未能解决你的问题,请参考以下文章

jQuery失去焦点触发事件,现在会出现alert循环出现的状况

两次点击button事件,该怎么处理

EXCEL 文本框控件点击文字变很小,失去焦点后又回复正常,这怎么解决?

移动端爬坑总结

input输入框用jquery怎么写失去焦点事件

点击alert后跳转不到指定页面怎么回事,js