如何实现选择/文本输入组合

How to implement a select/text input combo

本文关键字:文本 输入 组合 选择 何实现 实现      更新时间:2023-09-26

目前我有一个下拉(选择)框,如下所示:

<div class="fs-mobile-question">
    <label>Name:</label>
    <div>
      <select name="q1" class="form-control input-lg fs-task-input" style="width: 180px; display: inline;">
        {% for name in names %}
            <option value="{{ name }}">{{ names }}</option>
        {% endfor %}
      </select>
    </div>
</div>

我想做的是在下拉列表中有一个"其他"选项。当用户选择"其他"时,会出现一个文本输入字段,用于键入自定义名称(默认情况下将隐藏)。如果选择了"其他"以外的内容,则文本输入字段将消失。

我知道我可以在这里使用一些jQuery魔法,但我问这个问题的原因是因为我正在修改一个现有的应用程序,我想尽可能少地进行更改,我正在寻找一些关于如何做到这一点的想法。

因此,如果有一种方法,例如,我可以为文本输入字段和选择框提供相同的名称,并确定 POST 数据读取方式的优先级(即,如果选择了"其他",则使用文本字段) - 我肯定会感兴趣。

谢谢

在HTML5中,最接近不使用JavaScript的内置是datalist。

将此示例改编为您的示例 -http://html5tutorial.info/html5-datalist.php:

<input id="q1" name="name" type="text" list="q1list"  class="form-control input-lg fs-task-input" style="width: 180px; display: inline;"/>
<datalist id="q1list">
        {% for name in names %}
            <option value="{{ name }}">
        {% endfor %}
</datalist>