2011-01-05 34 views
2

JQuery的搜索字符串希望能幫到你,由字符

我想創建一個「簡單的」自動填充/標籤建議基於輸入字段的值的函數類型。

例子:在輸入欄中用戶類型的「Hello World」,我想要做的是change比賽charachters,因爲它們是對一個列表類型(predifined),所以這個名單可以是<ul><select>等。

習題。沒有必要去超越前2個或3個字符,其實真的只是第一個會做的時刻 - 所以例如,在「世界你好」,在列表中可能包含的「Hello World,喜的世界,幫助世界,一個,另一個世界,因爲世界......「

所以,如果我的H型爲我輸入首字母的一切我都在<ul><select>列表,請參閱 - 放置在輸入字段後,所以可以使用.next()是」世界你好,嗨世界,幫助世界「。

同樣,如果我輸入一個我會看到「一個世界,另一個世界」。我希望清楚嗎?概率。在那裏找不到任何教程。

在此先感謝

回答

3

這從頭開始並不困難。下面是部分解決我開始在幾個星期前的工作,歡迎您到它:

標記:

<input type="text" /> 
<div id="results"> 
    <ul> 
     <li>Cartman</li> 
     <li>Snooker</li> 
     <li>Star Wars</li> 
     <li>Blue Velvet</li> 
    </ul> 
</div> 

$(document).ready(function() { 
    $("#results").hide(); 
    $("input").keyup(function() { 
     if (this.value.length) { 
      var that = this; 
      $("#results li").hide().filter(function() { 
       return $(this).html().toLowerCase().indexOf(that.value.toLowerCase()) !== -1; 
      }).show(); 
      $("#results").show(); 
     } else { 
      $("#results").hide(); 
     } 
    }); 
}); 

Try it out here.

+0

完美很多感謝現在可以做我想做的事情 – 2011-01-05 09:07:43

1

的jQuery UI的自動完成插件支持在穩健的方式自動完成。不過,你必須定義一個回調函數來完成過濾,這很容易。

如果您點擊this particular demo上的「查看源代碼」,它將顯示如何使用正則表達式和jQuery grep函數進行篩選。

這應該讓你開始;剩下的就是從<ul>的子元素上的jQuery選擇器中構建該列表。