2014-03-27 77 views
3

我有一個select菜單,其選項通過PHPMySQL填充。選擇dropdown menu在執行jQuery Chosen之前工作正常,但最終選項列表將會很長,所以我使用Chosen以便包含搜索功能。選項填充在下拉框中,但是我的問題是搜索不能識別任何動態填充的選項。關於可用選項,我得到「沒有結果匹配...」。我確定插件是通過對某些選項進行硬編碼來工作的,而且確實可以搜索。jQuery選擇的搜索與動態填充選項不兼容(PHP/MySQL)

關於可能發生什麼的任何想法?它使用trigger("chosen:updated");

繼承人演示

http://jsfiddle.net/Q8GEp/

+0

如果選項正在動態添加,則在構建完整選項列表後重新啓動插件。 – effone

+0

「重新啓動」插件是什麼意思? – mikeriley131

回答

3

我知道這個問題是舊的,但我只是把我的頭髮在這個確切的問題,卻不能

0

最容易的方法在網上找到任何幫助(而這個問題還沒有被接受的答案,所以......)。

不管怎麼說,這是我的情景:

我的「選擇」是通過PHP程序生成的頁面加載輸入,選擇被初始化就好了(實際上是2等下拉菜單正常工作的同一表格上),但在這個特定的下拉菜單中,當我搜索一個值時(我可以在列表中清楚地看到這個值),如果我輸入了多於一個字符,我會得到一個「沒有結果匹配...」的消息。

這個問題實際上與我的PHP源代碼的格式有關。看起來,「選項」標籤的內部HTML中的任何換行符(可能是前導/後綴空白)都將打破「選擇」中的搜索功能。例如:

這PHP代碼:

<select> 
    <option> 
     <?php print("inner HTML"); ?> 
    </option> 
    <option> 
     <?php print("more inner HTML"); ?> 
    </option> 
</select> 

當時輸出此HTML:

<select> 
    <option> 
     inner HTML 
      </option> 
    <option> 
     more inner HTML 
      </option> 
</select> 

打破了搜索功能,但是當我改變了我的來源是:

<select> 
    <option><?php print("inner HTML"); ?></option> 
    <option><?php print("more inner HTML"); ?></option> 
</select> 
導致此HTML的

<select> 
    <option>inner HTML</option> 
    <option>more inner HTML</option> 
</select> 

一切都按預期:d

希望幫助別人誰是谷歌搜索周圍的回答這個問題。

+0

選項正在填充。我的問題是,搜索不認可的選項。 – mikeriley131

+0

可以在jsfiddle上分享你的代碼嗎? –

+0

不知道這是否會有幫助,因爲有PHP涉及,但這裏是相關的HTML和JS - http://jsfiddle.net/G6cwd/2/ – mikeriley131