javascript - 通过键入区分大小写问题来缩小结果范围

标签 javascript jquery

我有一个搜索框,它限制了键盘上下拉菜单中可用的选项。我遇到了区分大小写的问题 - 如何修改此函数以确保我的 option包含所键入字符的大写或小写版本?

fiddle :https://jsfiddle.net/g2q8hvf4/
请注意“i”和“I”之间的结果有何不同

$(document).on('keyup', '#condition-search', function(e) {
  var str = $('#condition option:contains(' + $(this).val() + ')');
  if (str) {
    $('#condition option').hide();
    str.show();
  } else {
    $('#condition option').show();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="form-control" id="condition-search">
<select class="form-control" id="condition" size="15" style="overflow-y: scroll" ;>
        <option class="cat-1">Item1</option>
        <option class="cat-2">item2</option>
        <option class="cat-3">Item3</option>
        <option class="cat-4">item4</option>
        <option class="cat-5">Item5</option>
    </select>

最佳答案

您可以使用 filter() 方法,在比较之前将查询和当前文本转换为小写:

$(document).on('keyup', '#condition-search', function(e) {
  var query = $(this).val().toLowerCase();
  var str = $('#condition option').filter(function () {
    return $(this).text().toLowerCase().includes(query);
  });
  if (str) {
    $('#condition option').hide();
    str.show();
  } else {
    $('#condition option').show();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="form-control" id="condition-search">
<select class="form-control" id="condition" size="15" style="overflow-y: scroll" ;>
        <option class="cat-1">Item1</option>
        <option class="cat-2">item2</option>
        <option class="cat-3">Item3</option>
        <option class="cat-4">item4</option>
        <option class="cat-5">Item5</option>
    </select>

关于javascript - 通过键入区分大小写问题来缩小结果范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44375725/

相关文章:

javascript - 函数作为对象和函数调用

php - javascript->php 加密解密 - 请需要说明和方法

Javascript 原型(prototype)返回值未定义,即使它在原型(prototype)方法中是正确的

javascript - 统计数据未定义

jquery - Cordova 混合应用程序与 Siteminder protected REST 资源集成

javascript - AWS lambda : Error: getaddrinfo ENOTFOUND from api

javascript - Google Maps API V3,点击时打开信息窗口

javascript - 在提交时传递主键而不是属性

javascript - 如何修复这个 JQuery 下拉菜单?

javascript - PHP/jQuery 即时搜索不工作