Javascript-关闭模式后关注元素

Javascript-关闭模式后关注元素,javascript,focus,bootstrap-modal,autofocus,Javascript,Focus,Bootstrap Modal,Autofocus,我有一个自动对焦的按钮。 当用户点击按钮(或按下“回车键”,因为它具有自动对焦功能)时,会弹出一个模式。 该模式还有一个带有自动聚焦属性的输入字段。 在用户在那里键入内容并按下“回车键”后,模式将关闭 我希望在关闭模式后,初始按钮再次聚焦。 但我不能让它工作 我尝试向按钮本身添加autofocus属性,还尝试添加document.getElementById(“myBtn”).focus()到关闭模式的函数。没有一个奏效 我尝试替换按钮的输入字段以关闭模式,它是这样工作的,因此我猜问题与输入中的

我有一个自动对焦的按钮。 当用户点击按钮(或按下“回车键”,因为它具有自动对焦功能)时,会弹出一个模式。 该模式还有一个带有自动聚焦属性的输入字段。 在用户在那里键入内容并按下“回车键”后,模式将关闭

我希望在关闭模式后,初始按钮再次聚焦。 但我不能让它工作

我尝试向按钮本身添加
autofocus
属性,还尝试添加
document.getElementById(“myBtn”).focus()到关闭模式的函数。没有一个奏效

我尝试替换按钮的输入字段以关闭模式,它是这样工作的,因此我猜问题与输入中的
onKeyDown=“if(event.keyCode==13)closeModal();
有关,因为“enter键”用于页面中的多个内容

我的假设正确吗?有没有办法让它在这些条件下工作

以下是我正在使用的简化版本:

var modal=document.getElementById('myModal');
var btn=document.getElementById(“myBtn”);
btn.onclick=函数(){
modal.style.display=“块”;
document.getElementById(“modalInput”).focus();
}
函数closeModal(){
modal.style.display=“无”;
document.getElementById(“myBtn”).focus();
}
.modal{
显示:无;
位置:固定;
z指数:1;
填充顶部:200px;
左:0;
排名:0;
宽度:100%;
身高:100%;
背景色:rgb(0,0,0);
背景色:rgba(0,0,0,0.4);
}
.模态内容{
背景色:#fefe;
保证金:自动;
填充:20px;
宽度:30%;
文本对齐:居中;
}
开放模式
这是一个模态


当您按下带有输入标签的enter键时,同时调用关注按钮。这会触发按钮上的立即enter键事件

因此,模态似乎没有关闭。放置
setTimeout
将修复它。您可能需要使用
:focus
psedo类选择器对其进行样式设置,以将其显示为焦点

var modal=document.getElementById('myModal');
var btn=document.getElementById(“myBtn”);
btn.onclick=函数(){
modal.style.display=“块”;
document.getElementById(“modalInput”).focus();
}
函数closeModal(){
modal.style.display=“无”;
setTimeout(函数(){
document.getElementById(“myBtn”).focus();
},0)
}
.modal{
显示:无;
位置:固定;
z指数:1;
填充顶部:200px;
左:0;
排名:0;
宽度:100%;
身高:100%;
背景色:rgb(0,0,0);
背景色:rgba(0,0,0,0.4);
}
.模态内容{
背景色:#fefe;
保证金:自动;
填充:20px;
宽度:30%;
文本对齐:居中;
}
开放模式
这是一个模态


当您按下带有输入标签的enter键时,同时调用关注按钮。这会触发按钮上的立即enter键事件

因此,模态似乎没有关闭。放置
setTimeout
将修复它。您可能需要使用
:focus
psedo类选择器对其进行样式设置,以将其显示为焦点

var modal=document.getElementById('myModal');
var btn=document.getElementById(“myBtn”);
btn.onclick=函数(){
modal.style.display=“块”;
document.getElementById(“modalInput”).focus();
}
函数closeModal(){
modal.style.display=“无”;
setTimeout(函数(){
document.getElementById(“myBtn”).focus();
},0)
}
.modal{
显示:无;
位置:固定;
z指数:1;
填充顶部:200px;
左:0;
排名:0;
宽度:100%;
身高:100%;
背景色:rgb(0,0,0);
背景色:rgba(0,0,0,0.4);
}
.模态内容{
背景色:#fefe;
保证金:自动;
填充:20px;
宽度:30%;
文本对齐:居中;
}
开放模式
这是一个模态


如果不使用按钮,我们就不能使用锚定标签吗?@Vikram Thakur,我不希望。这会影响网站的整体设计。如果不使用按钮,我们就不能使用锚定标签吗?@Vikram Thakur,我不希望。这会影响网站的整体设计。您的解决方案非常有效。非常感谢您的帮助!很高兴为您提供帮助帮助您:)您的解决方案非常有效。非常感谢您的帮助!很高兴帮助您:)