当我在文本输入中写入时,在下拉列表中选择实时选项

时间:2015-12-15 20:20:37

标签: javascript jquery html



<input type="text" id="filter">
<select id="asd">
    <option>asd</option>
    <option>zxc</option>
    <option>qwe</option>
    <option>cvb</option>
</select>
&#13;
&#13;
&#13;

我想做这样的事情,当我用文字输入书写时(例如&#34; zxc&#34;),然后会选择<option>zxc</option>

2 个答案:

答案 0 :(得分:1)

您将要使用大量功能组合来执行此操作。 jQuery提供了功能.on ("input",它将在输入元素上采用各种事件处理程序,并生成您正在寻找的“实时”方面。接下来,您将需要输入输入的文本,并筛选选项以查看其中是否有任何匹配。 jQuery的filter提供了这一点,在迭代期间将当前元素绑定到回调函数。剩下的就是获取select元素,并在匹配时将selectedIndex分配给绑定元素的index()

看起来像这样:

var sel = $("#asd option"),
$f = $("#filter").on("input",function(){
  var opt = sel.filter(function(){ return $(this).text() == $f.val(); });
  if(opt.length) sel[0].parentNode.selectedIndex = opt.index();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="filter">
<select id="asd">
    <option>asd</option>
    <option>zxc</option>
    <option>qwe</option>
    <option>cvb</option>
</select>

答案 1 :(得分:0)

首先对文本字段进行状态更改。 每次字段更改时,请查看文本字段中的字符串。

现在每次查看字符串时,请检查文本字段是否包含&#34; asd&#34;,现在检查它是否包含&#34; zxc&#34;等等,您实际上只需检查文本字段输入是否以...开头等等......如果是,则可以手动设置要选择的选项。