如何在JS / jQuery中激活新创建的输入

时间:2018-08-05 21:43:13

标签: javascript jquery

我具有创建和激活文本字段的功能:

if ( [first - second, first - third , second - third].some(n => Math.abs(n) >=2 ) )

效果很好,但是我还有另一个事件,如果有人按下Enter键,我想选择并创建下一个字段:

function createInput( button, val ) {
  if (button.children().length == 0) {
      button.html('<input type="text" class="form-control newField" size="7" maxlength="3">');

      button.children('input').val(val);
      button.children('input').select();
  }
}

它起作用,它创建新的文本字段,但不激活该字段。看起来select()函数不起作用。

是否有机会激活此字段?

1 个答案:

答案 0 :(得分:0)

据我了解,您希望每次用户按下Enter键时,将带有用户输入的元素放置到页面上。

这是一个可行的示例:

var container = document.getElementById('container');
var input = document.getElementById('input');

input.addEventListener('keydown', function(event) {

  // If the key being pressed is ENTER and the input element isn't empty
  if (event.keyCode === 13 && input.value) {
    // Create the element
    var element = document.createElement('div');
    element.setAttribute('class', 'btn');
    element.innerHTML = input.value;

    // Insert onto the page
    container.appendChild(element);

    // Clear the input element
    input.value = "";
    input.scrollIntoView();
  }
});
.btn {
  background-color: black;
  display: inline-block;
  border-radius: 4.3px;
  color: white;
  font-family: Helvetica;
  margin-bottom: 4.3px;
  box-sizing: border-box;
  padding: 14px;
  float: left;
  clear: both;
}

#container:after {
  clear: both;
  content: "";
  display: block;
}
<div id="container">
</div>
<input id="input" placeholder="Type here, when done press [ENTER] Key">