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

之前有那么一个需求,在点击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清空,然后恢复焦点,也可以细分多种标识符,可以只恢复焦点,不清空,这个是跟着需求走的.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值