【问题标题】:How to get text from the input text area when autocomplete is close using jquery ui?使用jquery ui关闭自动完成时如何从输入文本区域获取文本?
【发布时间】:2013-02-09 16:58:13
【问题描述】:

当您在输入文本区域中键入与源对象的选择列表匹配的字母时,Jquery UI 自动完成打开,并在使用 Enter 键从选择列表中进行选择后关闭,如果您输入的文本则关闭不在选择列表中。

在键入不在选择列表中的文本后,如何检查自动完成功能何时关闭?我正在尝试做的是当输入回车键时,检查自动完成是否关闭,如果是,则获取文本区域中的文本(如果它不为空)。

类似这样的:

           $(".inputText").keydown(function()
           {
               if(keyChar == enterKey)
               {
                 // Somehow check is autocomplete is closed and if inputText is not empty, get the text without it interfering with the autocomplete select event. 
               }

           });

【问题讨论】:

    标签: jquery jquery-ui


    【解决方案1】:

    大致有两种方法,一种通过autocomplete() 方法绑定到元素,第二种监听自定义事件autocompleteclose,由自动完成列表的关闭触发:

    var list = [
        'apple',
        'Azerbaijan',
        'aggregate',
        'Albert',
        'Aunty',
        'admissible',
        'and so forth...'
    ];
    
    $('#textInput').autocomplete({
        source: list,
        close: function ( event, ui ) {
            var v = this.value;
            if (list.indexOf(v) === -1) {
                list.push(v);
            }
        }
    });
    

    JS Fiddle demo.

    或者:

    $('#textInput').on('autocompleteclose', function (event, ui) {
        var v = this.value;
        if (list.indexOf(v) === -1) {
            list.push(v);
        }
    });
    

    JS Fiddle demo.

    参考资料:

    【讨论】:

      【解决方案2】:

      如果我理解正确,您正在寻找的是自动完成的“选择”属性。

      $( "#tags" ).autocomplete({
          source: aTags,
          select: function( event, ui ) {
              alert(ui.item.value);
          }
      });
      

      这里是 JSFIddle:http://jsfiddle.net/CezarisLT/KHqQm/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 2011-05-18
        • 1970-01-01
        • 2014-01-17
        • 2016-10-20
        相关资源
        最近更新 更多