繁体   English   中英

jQuery UI自动完成功能会忽略非字母数字字母

[英]jQuery UI Autocomplete ignore non alphanumeric letters

我想忽略自动完成输入中的所有非字母数字字母。 例如,如果用户输入KP COLLECTION则可以搜索KP COLLECTION

这是我在http://jsbin.com/usupem上的代码

码:

var autocomplete_data = data here...

$( ".autocomplete" ).autocomplete({
    source: function(req, response) {
        var re = $.ui.autocomplete.escapeRegex(req.term);
        var matcher = new RegExp( "^" + re, "i" );
        response($.grep(autocomplete_data, function(item){return matcher.test(item.label); }) );
    },
    focus: function( event, ui ) {
            $( ".autocomplete" ).val( ui.item.label );
            return false;
    },
    select: function( event, ui ) {
            $( ".autocomplete" ).val( ui.item.label );
            return false;
    }
}).data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" ).data( "item.autocomplete", item ).append( "<a>" + item.label + "<br><small>" + item.desc + "</small></a>" ).appendTo( ul );
};

您应该从输入和要匹配的术语中去除非字母数字字符。 尝试在源函数的req.term和item.label值上调用类似的方法:

function stripNonAlphaNumeric(string){
  var r = string.toLowerCase();
  r = r.replace(new RegExp("[^A-z0-9 ]", 'g'), "");
  return r;

}

http://jsbin.com/ufetiq/3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM