创建一个用户可以在其中键入值的选择框,或从列表中选择

时间:2012-01-26 16:45:35

标签: php html forms input

有没有办法模仿C输入/选择框,你在下拉的顶部有一个空白文本条目?用户可以键入新值或从列表中选择。有没有人想过用PHP / Javascript做这个的方法? AJAX类型的解决方案甚至会更好。

我不知道该怎么称呼这种类型的盒子,我认为它不像大多数人想象的那样是“组合盒子”。

2 个答案:

答案 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/

我从答案的顶部向jsfiddle添加了额外的HTML INPUT标记,只更改了jQuery函数的1行(makeInputSelect)。

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

答案 1 :(得分:3)

您可以使用着名的Chosen库:)

BTW,请参阅国家/地区的第二个示例