如何在jquery自动完成中搜索单个单词?

时间:2015-05-07 03:53:54

标签: jquery

如何在jquery自动完成中搜索单词?考虑我有一个数组如下。如果我输入的类似'S',那么我必须打印所有'S'相关的结果,如ActionScript,AppleScript,Scala,BASIC,Haskell,Scheme,ColdFusion等。你可以更新这个fiddle

var availableTags = [
  "ActionScript",
  "AppleScript",
  "Asp",
  "BASIC",
  "C",
  "C++",
  "Clojure",
  "COBOL",
  "ColdFusion",
  "Erlang",
  "Fortran",
  "Groovy",
  "Haskell",
  "Java",
  "JavaScript",
  "Lisp",
  "Perl",
  "PHP",
  "Python",
  "Ruby",
  "Scala",
  "Scheme"
];

提前致谢。

2 个答案:

答案 0 :(得分:4)

试试这个。 你根本不需要自动完成。



$rootScope.$broadcast

var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];

$("#tags").keyup(function(){
    $("#found").find('p').remove();
    var val = $(this).val();
    if(val.length>0){
    for(var i=0;i<availableTags.length;i++)
    {
        var item =   availableTags[i];
        if(item.toLowerCase().indexOf(val.toLowerCase())>-1)
        {
            $("#found").append("<p>"+item+"<br></p>");
        }
    }
    }
    
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果你不想要下拉列表,也许你甚至不需要jquery UI。您可以执行this

之类的操作
$input.on('keyup', function(){
    availableTags.filter(function(_item){
        return _item.toLowerCase().indexOf($inp.val()) > -1;
    }).forEach(function(_item) {
        console.log( _item );
    });
});