首页 > 解决方案 > 我需要 Awesomplete 来保留尾随空格

问题描述

我已经使用 Awesomplete(一个非常好的自动完成小部件)大约两年了。它运行良好,但默认情况下显然会修剪尾随空格。我一直在忍受这个,但我真的需要保留尾随空格。

包含所需尾随空格的列表由数据库生成;CSS 已应用于网页的输入字段以保留尾随空格 - 但是空格仍然被修剪,所以我认为 Awesomplete 正在这样做。

我对 Javascript 知之甚少,但我猜测相关代码包含在以下内容中:

_.all = [];

_.FILTER_CONTAINS = function (text, input) {
    return RegExp($.regExpEscape(input.trim()), "i").test(text);
};

_.FILTER_STARTSWITH = function (text, input) {
    return RegExp("^" + $.regExpEscape(input.trim()), "i").test(text);
};

_.ITEM = function (text, input, item_id) {
    var html = input.trim() === "" ? text : text.replace(RegExp($.regExpEscape(input.trim()), "gi"), "$&");
    return $.create("li", {
        innerHTML: html,
        "aria-selected": "false",
        "id": "awesomplete_list_" + this.count + "_item_" + item_id
    });
};

_.REPLACE = function (text) {
    this.input.value = text.value;
};

_.DATA = function (item/*, input*/) { return item; }; 

如何修改它以保留尾随空格?

谢谢!

PS我没有写上面引用的代码;它是 Awesomplete 的 JavaScript 的摘录,包含我认为是他们代码的相关部分。如果实际上没有任何东西可以修剪尾随空格,请告诉我!谢谢。

PS #2 它不是带有“显示”和“值”的下拉框。它是一个文本输入字段,通过从列表中提取值来自动完成用户键入的内容。谢谢。

标签: javascriptautocomplete

解决方案


input.trim()是修剪空白的原因,看起来他们经常这样做。但是,这看起来主要用于显示用途。您可能想尝试查看是否可以使用带有空格的值作为选项“值”并允许修剪显示文本。


推荐阅读