【问题标题】:How to add search suggestion on to ajax sucess如何将搜索建议添加到 ajax 成功
【发布时间】:2025-12-31 04:20:13
【问题描述】:

我需要将搜索建议添加到文本框中。我尝试了很多方法。但我找不到正确的方法。我使用ajax从后端获取数据(arraylist)。然后将其作为json返回给jsp。现在我需要根据ajax成功添加搜索建议功能。 ajax成功的dataType是json。

$("#tagText").bind("keyup", function (event){
     event.preventDefault();
     var tagSuggest = $("#tagText").val();
     var url= "../operation/SuggestSupport!searchSuggest.action?documentTag.tagText="+tagSuggest+"&page=0&activePage=0";
      $.ajax({
         type: "POST",
         url: url,
         dataType:"json",
         success: function(data){

         //search suggestions code

      },
      error: function (data){
      alert("Error");
      }
      });
});

这是我的文本框

<div class="input-group">
     <s:textfield name="document.tagText" id="tagText" cssClass="form-control" maxlength="100" autocomplete="off" style="width: 237px; border-radius: 4px;"/> 
</div>

【问题讨论】:

  • 使用jquery自动完成jqueryui.com/autocomplete
  • 我查过了。例如,当我输入“S”字母时,它会给出“S”在中间的单词。我需要的是当我输入一个字母时,建议词应该从那个字母开始。有没有可能的方法来做到这一点??

标签: jquery json ajax search-suggestion


【解决方案1】:

您应该将 div 放到您的 HTML 示例中:-

<div class="input-group">
 <s:textfield name="document.tagText" id="tagText" cssClass="form-control" maxlength="100" autocomplete="off" style="width: 237px; border-radius: 4px;"/> 
</div>
<div class="suggestion-wrap">
   <ul>
      <li></li>
      <li></li>
   </ul>
</div>

你的ajax应该是这样的:-

$("#tagText").bind("keyup", function (event){
  event.preventDefault();
  var tagSuggest = $("#tagText").val();
  var url= "../operation/SuggestSupport!searchSuggest.action?documentTag.tagText="+tagSuggest+"&page=0&activePage=0";
  $.ajax({
     type: "POST",
     url: url,
     dataType:"json",
     success: function(data){
        var searchData = JSON.parse(data); 
        //search suggestions code
        $('.suggestion-wrap ul').empty();
        for (var i=0; i<searchData.length; i++) {
            $('.suggestion-wrap ul').append('<li>'+searchData[i]["name"]+'</li>');
        }
     },
     error: function (data){
       alert("Error");
     }
  });
});

【讨论】:

  • 你以前试过这个吗??
    这是什么??
  • 首先你应该定义你想要显示搜索数据的结构。 ul 和 li 只是所有数据都显示在列表中的示例。