2015-01-10 85 views
0

我遇到了JqueryUI自动完成问题,其中正在返回的跨度在下拉列表中显示为文本(如下所示)。将文本加载为文本

我使用jQuery UI 1.8.17和jQuery 1.6.4

的自动完成功能:

$('#search').autocomplete({ 
      source: '/Search/AutoComplete', 
      html: true, 
      delay: 0 
     }); 

autocomplete with spans

浏览器没有加载跨度到DOM。我假设的原因是因为它需要HTML编码文本。这是标记。正如你可以看到它没有编码。

<li class="ui-menu-item" role="menuitem"> 
    <a class="ui-corner-all" tabindex="-1">&lt;span class="autocomplete cat"&gt;Cat&lt;/span&gt;</a> 
</li> 
<li class="ui-menu-item" role="menuitem"> 
    <a class="ui-corner-all" tabindex="-1">&lt;span class="autocomplete carbon"&gt;Carbon&lt;/span&gt;</a> 
</li> 

我读了一些HTML扩展的东西,但没有找到具体的东西。这个问题可以通过J Query修复吗?还是需要修改我的源数据?

+1

看看这可以帮助你[http://stackoverflow.com/questions/3488016/using-html-in-jquery-ui-autocomplete][1] [1]:http://stackoverflow.com/questions/3488016/using-html-in-jquery-ui-autocomplete – imnancysun

+0

感谢@imnancysun。这是正确的解决方案。 – Adam

回答

0

发布在Using HTML in jQuery UI autocomplete的解决方案是解决方案。

我的JS结束看起来像:

$('#searchPhrase').autocomplete({ 
     source: '/Search/AutoComplete', 
     html: true, 
     delay: 0, 
     minLength: 2 
    }).data("autocomplete")._renderItem = function (ul, item) { 
     return $("<li></li>") 
      .data("item.autocomplete", item) 
      .append("<a>" + item.label + "</a>") 
      .appendTo(ul); 
    };