如何为.autocomplete使用jQuery的formatItem,formatMatch和formatResult选项?

时间:2010-11-19 21:48:33

标签: jquery-plugins jquery-autocomplete

我正在使用jQuery的.autocomplete插件,我希望得到一些帮助,以便在将文本写入输入字段时填充下拉菜单中显示的结果。

为了让数据填充自动完成,我使用这个PHP从mySQL中提取:

 $sql = ( 'SELECT tag, title, author, content, id FROM labels' );
 $result = mysql_query( $sql );
 $Response = array();
 while( $row = mysql_fetch_object( $result ) ){
 $Response[] = array(
                           "id" => $row->id,
                           "name" => $row->tag . ": " . $row->title . ": " . $row->content .""
                         );
 }

当用户从最适合他们的自动填充中选择选项时,我使用此方法将上面的“名称”转换为“id”:     var AllTagData =;       var Tags = [];

  for(var i in AllTagData){
     Tags.push(AllTagData[i].name);
  }

  function getIdFromTag(_name){
      for(var i in AllTagData){
          if(_name == AllTagData[i].name){
              return AllTagData[i].id;
          }
      }
  }

到目前为止,这么好。最后,我使用jQuery自动完成插件为用户输出数据:

$(document).ready(function(){
     $("#Responses").autocomplete({
         source: Tags,
         matchContains: true,
         autoFill: true,
         select: function(e, ui){
             $("#hidden_tags").val( getIdFromTags($("#Responses").val()) );
          }});
 });

代码的最后一部分是我需要帮助实现formatItem,formatMatch和formatResult选项的地方。

从上面给出的PHP中,我在“名称”中输出标签,标题和内容。我想为用户格式化自动填充选项的方式是

  • 显示标签&标题
  • 隐藏内容
  • 搜索标签,标题和内容以寻找可能的匹配

因此,即使我希望自动完成功能搜索内容,我也不希望内容显示在已填充的自动完成列表中。我只希望显示标签和标题。

我一直遇到很多麻烦并且已经进行了大量搜索以找到答案,并且非常感谢您可以提供的有关如何实现这一目标的任何帮助。如果您需要进一步说明,请询问任何后续问题。 谢谢!

1 个答案:

答案 0 :(得分:0)

我认为你使用的是不同版本的插件,但如果你看一下这个:

http://code.google.com/p/jquery-autocomplete/

您将找到一个文件index.html,其中包含您要求的示例,例如:

showResult: function(value, data) {
    return '<span style="color:red">' + value + '</span>';
},
祝你好运!