每次单击按钮时,都会添加一个新文本框,我希望该文本框专注于加载。如果我再次单击该按钮,我希望焦点转移到新添加的文本框中。
答案 0 :(得分:2)
如果我理解您的意思正确,那么您正在寻找类似以下示例的内容:
$('button').on('click', function () {
var textBox = $('<input type="text">');
textBox.appendTo('body');
var interval = setInterval(function () {
textBox.focus();
if (textBox.is(':focus')) {
clearInterval(interval);
}
}, 100);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button">Add textbox</button>
在将新输入添加到body标签之后,我们将focus
设置为元素。但是有时它不会立即聚焦,因此我们需要使用setInterval
在100毫秒后再次检查聚焦。然后,当元素被聚焦时,我们使用clearInterval
方法清除间隔。
答案 1 :(得分:0)
这是一个实现您所追求的目标的小例子。在此示例中,将在现有输入字段之后添加一个输入字段,并使用focus()函数将其设置为焦点。
let newInput = document.createElement( "input" );
newInput.setAttribute( "type", "text" );
let previousInput = document.getElementById( "test" );
previousInput.parentNode.insertBefore( newInput, previousInput.nextElementSibling );
newInput.focus();
<input type="text" id="test">
希望对您有帮助。