javascript - 如何在现有选择列表中显示自动完成结果

标签 javascript jquery html

我有一个现有的多重选择列表,其中包含如下所示的数据。

  <select id="Select2" size="6" multiple>
       <option>11</option>
       <option>12</option>
       <option>115</option>
       <option>116</option>
       <option>128</option>
       <option>111</option>

 </select>

我有一个额外的文本框用于输入 ID 号。 当用户在此文本框中输入值时,我希望现有的选择列表更改为我们从 jquery 的自动完成功能获得的结果。因此如果用户输入 11

我希望选择列表更改为

      <select id="Select2" size="6" multiple>
       <option>11</option>
       <option>115</option>
       <option>116</option>
       <option>111</option>

 </select>

但我不希望使用自动完成 jquery 来自动完成选择列表。 我怎样才能使用 jquery 实现这一点。

最佳答案

Demo

您可以做的是让每个选项都有一个ID,并有一个监听器绑定(bind)到文本输入的keyup事件。在每个 keyup 事件中,

  • 文本输入的值将与选项元素的 ID 进行比较。
  • 不包含文本的选项应将其 display 属性设置为 none
  • 那些包含文本的内容将 display 属性设置为 block

    <input type = "text" id = "text_input" /> 
    
    <select id="select" size="6" multiple>
      <option id = '11'>11</option>
      <option id = '12'>12</option>
      <option id = '115'>115</option>
      <option id = '116'>116</option>
      <option id = '128'>128</option>
      <option id = '111'>111</option>
    </select>
    
    
    $("#text_input").on("keyup", function(){
    
      //get value of input
      var val = $(this).val();
    
      //iterate over options in the select menu
      $("#select option").each(function(){
    
        //if value is not contained inside an option id, hide option element
        if ($(this).attr("id").indexOf(val) == -1)
          $(this).css("display", "none");
    
        //otherwise, show it
        else
          $(this).css("display", "block");
      });
    
    });
    

请注意,如果您不想为此功能绑定(bind) id 属性,则可以使用 HTML data- 属性和 jQuery 的 $(#select").data(... ) 将代替 attr("id")

关于javascript - 如何在现有选择列表中显示自动完成结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984216/

相关文章:

javascript - ScrollTop 无法更新到 jQuery 1.11.1

javascript - html文件中未捕获到的SyntaxError,但没有可识别的语法错误

javascript - 如何使用 chartjs 为条形图中的每个条设置颜色?

javascript - 如何在不发布表单的情况下获取文本字段的值

javascript - 如何将其设置为 "save as HTML"而不是 "download as HTML"?

javascript - 收到错误,指出声明的变量未定义

javascript - 如何使用 Javascript 从 URL 获取 HTTP header (Content-Type)

javascript - 最好的办法 :not in jQuery?

javascript - 如何使用 jQuery 在 summernote 编辑器中获取输入的内容?

javascript - 需要帮助理解为什么 javascript 对象属性未定义