javascript - Javascript 中不区分大小写的自动完成

标签 javascript jquery jquery-autocomplete

我有一个用于自动完成功能的 JavaScript 代码。它突出显示在搜索框中输入的文本并将其与数据库中的文本进行匹配。这是区分大小写的,因此它仅突出显示数据库表中的文本。我希望搜索不区分大小写。 这是我现有的代码:

 <script type="text/javascript">
$(function() {
    var availableTags = [<?php echo $tagsString; ?>];

    $( "#tags" ).autocomplete({
      source: availableTags
    });
  });
 $.extend( $.ui.autocomplete.prototype, {
    _renderItem: function( ul, item ) {
        var term = this.element.val(),
            html = item.label.replace( term, "<span class='f1'>$&</span>" );
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( $("<a></a>").html(html) )
            .appendTo( ul );
    }
});

</script>

最佳答案

在数据库代码中,等式两边都使用 LOWER。

... WHERE LOWER(db_field) = LOWER(:text) ...

或者您可以在将输入提供给数据库之前将其转换为 lower,并在这种情况下省略右侧的 LOWER

如果喜欢

... WHERE LOWER(db_field) like '%' || LOWER(:text) || '%' ...

请始终正确引用或更好地使用准备好的语句来防止 SQL 注入(inject)。

编辑:找到了一种更干净的方法,仅使用绑定(bind)而不引用

关于javascript - Javascript 中不区分大小写的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542670/

相关文章:

javascript - 根据 2 个下拉菜单中的选择更改图像

jquery - 在哪里可以下载 jQuery UI 的非缩小版?

jquery 自动完成结果框很小

jquery - 从自动完成中选择时重定向用户?

javascript - iframe 问题 : &lt;script src ="..."> not loaded at all

javascript - 加载css代码到textarea最后一行加1

jquery获取最后一个输入字段索引

jquery - 使用 Knockout JS/Jquery 在网页之间传递变量的最佳实践

javascript - 单击嵌套元素时将类添加到同级元素

Javascript 正则表达式匹配 test123 中的 "123"