2012-01-26 56 views
4

有沒有一種方法可以模擬C輸入/選擇框,您可以在上面用空白文本輸入下拉菜單?用戶將輸入一個新值或從列表中選擇。有沒有人想過用PHP/Javascript做到這一點? AJAX類型的解決方案甚至會更好。製作一個用戶可以在其中輸入值的選擇框,或者從列表中選擇

我不知道該怎麼稱呼這種類型的盒子,我不認爲它像大多數人所想的那樣是一個「組合框」。

回答

3

可以BTW使用著名Chosen庫爲:)

,看到國家的第二個例子。

+0

酷 - 如果只有內置添加功能。:)我會看看我能想出什麼。 –

+0

發現包含「添加」功能的分支。感謝您的鏈接! –

+0

你認爲你可以發佈一個鏈接到叉?對我和任何其他人 –

5

您有幾個選項。

這裏有一個快速的功能,我扔在一起jQuery將做你想做的。該選項要求客戶端啓用JavaScript才能工作。

http://jsfiddle.net/QrA4N/25/

如果如果你想沒有JavaScript(客戶端代碼)溶液不想讓JavaScript的要求

。你堅持把一個與你的選擇框相同的「名稱」的輸入框放在它旁邊,或者在它之後添加一個「其他」選項到你的選擇框。現在

<select name="selAnimals" id="selAnimals"> 
    <option value="dog">Dog</option> 
    <option value="cat">Cat</option> 
    <option value="bird">Bird</option> 
    <option value="guineapig">Guinea Pig</option> 
    <option value="">Other</option> 
</select> 
<input type="text" name="selAnimals_Other" id="selAnimals_Other" /> 

你的PHP必須同時檢查$ _ POST [ 「selAnimals」]和$ _POST [ 「selAnimals_Other」]以得出正確的值。

最好的選擇是將上面的HTML和上面的JavaScript結合起來,爲那些啓用或禁用JavaScript的人創建一個優雅的降級解決方案。

http://jsfiddle.net/QrA4N/26/

我增加額外的HTML INPUT標記到的jsfiddle從答案的頂部,只改1行jQuery函數(makeInputSelect)的。

var $inp = $("#" + id + "_Other"); 
+0

+ +1的辛勤工作:) – Sarfraz

+0

@Sarfraz - 我對這個代碼的工作原理感到好奇。顯然,你不想重新發明輪子,但是查看成熟庫的源代碼(可能包括許多其他功能)有點令人生畏。此外,促進/解釋適當的無腳本和可訪問性優雅的退化是重要的。 –

相關問題