默认情况下在ContextMenu中选中输入文本(焦点)

时间:2018-11-09 17:16:49

标签: javascript jquery contextmenu

我有一个由contextmenu生成的文本字段,并且希望默认选择它(默认为自动对焦)。我无法使用功能jquery focus

成功

2 个答案:

答案 0 :(得分:0)

您可以尝试设置自动对焦属性吗?

$(function(){
        $.contextMenu({
            ...
                name_input: {
                    name: "Name input :", 
                    autoFocus: true,
                    type: 'text', 
                    ...
...

答案 1 :(得分:0)

focus部分中设置events.show
在设置timeout之前,您需要input才能使focus元素出现在DOM中。
input名称将以context-menu-input-为前缀。

请参见下面的代码段

$(function() {
  $.contextMenu({
    selector: '.context-menu-one',
    items: {
      // <input type="text">
      input1: {
        name: "Text",
        type: 'text',
        value: "Hello World",
        events: {
          keyup: function(e) {
            window.console && console.log('key: ' + e.keyCode);
          }
        }
      }
    },
    events: {
      show: function(opt) {
        var $this = this;
        $.contextMenu.setInputValues(opt, $this.data());
        
        // Set focus to the input element
        setTimeout(() => {
          $('[name="context-menu-input-input1"]').focus();
        }, 10);
      },
      hide: function(opt) {
        var $this = this;
        $.contextMenu.getInputValues(opt, $this.data());
      }
    }
  });
});
<link href="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.css" rel="stylesheet" type="text/css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script>


<span class="context-menu-one btn btn-neutral">right click me</span>

希望这会有所帮助。