在typeahead输入中标准化重音是空错误

时间:2016-12-22 12:09:51

标签: typeahead.js typeahead bloodhound

我想在我的预先设定中禁用重音敏感度。 所以我使用这段代码:

<script>
    var charMap = {
        "à": "a",
        "á": "a",
        "â": "a",
        "é": "e",
        "è": "e",
        "ê": "e",
        "ë": "e",
        "É": "e",
        "ï": "i",
        "î": "i",
        "ô": "o",
        "ö": "o",
        "û": "u",
        "ù": "u",
        "ü": "u",
        "ñ": "n"    
    };

    var normalize = function (input) {
        $.each(charMap, function (unnormalizedChar, normalizedChar) {
            var regex = new RegExp(unnormalizedChar, 'gi');
            input = input.replace(regex, normalizedChar);
        });
        return input;
    };

    var queryTokenizer = function (q) {
        var normalized = normalize(q);
        return Bloodhound.tokenizers.whitespace(normalized);
    };


    var tags = new Bloodhound({
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
      queryTokenizer: queryTokenizer,
      prefetch: {
        url: '{{URL}}',
        filter: function(list) {
          return $.map(list, function(tag) {
              var normalized = normalize(tag);
            return { name: normalized }; });
        }
      }
    });
</script>

我在控制台中遇到了这个错误:

  

TypeError:输入为空

ps:不使用此规范化方法..我的代码运行良好

0 个答案:

没有答案