jQueryUI自动完成 - 选择后模糊字段

时间:2011-05-20 15:17:10

标签: javascript jquery jquery-ui autocomplete

我希望能够在从下拉列表中选择值后模糊字段。我目前在焦点上搜索自动完成项目。

这就是我所拥有的:

            $("#season").autocomplete({  
            source: function( request, response ) {
                    $.getJSON( "search.asp", {
                        term: request.term,
                        type: 'season'
                        }, response );},
            minLength: 0
        }).focus(function(event, ui){
            $(this).autocomplete("search","");
        });

3 个答案:

答案 0 :(得分:10)

您可以使用'close'方法在输入字段上调用模糊:

$("#season").autocomplete({   
   source: function(request, response){      
   $.getJSON("search.asp", {
         term: request.term,
         type: 'season'
      }, response);
   },
   minLength: 0,
   close: function(){
      $(this).blur();
   }}).focus(function(event, ui){
   $(this).autocomplete("search", "");
});

答案 1 :(得分:1)

自动填充功能有一个select事件,当您从下拉列表中选择某些内容时会触发该事件。在那种情况下,您可以在输入上调用.autocomplete('close')来关闭下拉列表。

$("#season").autocomplete({
   source: function(request, response){
      $.getJSON("search.asp", {
         term: request.term,
         type: 'season'
      }, response);
   },
   minLength: 0,
   select: function(){
      $(this).autocomplete('close');
   }
}).focus(function(event, ui){
   $(this).autocomplete("search", "");
});

熟悉文档会产生奇迹:)

http://jqueryui.com/demos/autocomplete/

示例下方的选项卡(选项,事件,方法等)将为您提供所需的一切。

编辑:

试试这个,对我有用,但我只在Chrome,FF3和IE8中测试过。

$("#season").autocomplete({
   source: function(request, response){
      $.getJSON("search.asp", {
         term: request.term,
         type: 'season'
      }, response);
   },
   minLength: 0,
   select: function(){
      $('#season').autocomplete('close').blur();
   }
}).click(function(event, ui){
   $(this).autocomplete("search", "");
});

通常,使用点击代替焦点不是一个好主意。

答案 2 :(得分:0)

为我找到了解决方案。你必须触发模糊并关闭“改变”。

 $("#season").autocomplete({  
            source: function( request, response ) {
                    $.getJSON( "search.asp", {
                        term: request.term,
                        type: 'season'
                        }, response );},
            minLength: 0,
            change: function (event, ui) {
              $(this).autocomplete('close').blur();
            }
        }).focus(function(event, ui){
            $(this).autocomplete("search","");
        });