专注于 bootstrap-tokenfield 输入

Focus on bootstrap-tokenfield input

我想在模态显示时将注意力集中在令牌字段输入字段上。 目前它只有在我点击模式中的输入字段时才会聚焦。

https://jsfiddle.net/csisanyi/h19Lzkyr/12/

我尝试添加以下代码

    Mousetrap.bind('w', function() { 
  document.getElementById("keywordButton").click();
  document.getElementById("keyword-input").focus();
  }); 

我也尝试添加 <input autofocus> 但是当令牌字段初始化时它似乎被覆盖了。

我检查了bootstrap-tokenfield documentation,但那里并没​​有真正提到输入字段焦点。

有什么建议吗?

您要将焦点放在按钮上还是输入字段上?您指定的 ID 用于聚焦按钮。你提到希望该领域集中注意力,但你似乎并没有呼吁它。我无法发表评论,但会随着时间的推移对其进行编辑。 HTML:

<div class="modal-body">
    <p class="modal_text">Add keywords.</p>
    <input class="token-input input-group-lg keywordmodalclass" id="keyword-input" type="text" name="keywords" value="" placeholder="Keywords">
</div>
<div class="modal-footer">
    <button id="saveKeyword" type="submit" class="btn btn-success" onclick="submitKeywords()">Save Keywords</button>

Jquery:

 Mousetrap.bind('w', function() { 
      document.getElementById("keywordButton").click();
      document.getElementById("keyword-input").focus();
  }); 

我找到了解决问题的方法。

tokenfield初始化后,bootstrap-tokenfield.js在输入的id后面附加-tokenfield

所以我添加了以下代码。

https://jsfiddle.net/csisanyi/h19Lzkyr/43/

Mousetrap.bind('w', function() { 
  document.getElementById("keywordButton").click();
  setTimeout(() => {
          document.getElementById("keyword-input-tokenfield").focus();
        }, 400);
}); 

它与在焦点表达式上设置最小超时一起工作。