【问题标题】:Autocomplete Multiple separated by "|" not ","自动完成多个以“|”分隔不是 ”,”
【发布时间】:2016-01-02 15:10:39
【问题描述】:

我正在按照本网站的指示进行操作:

http://jqueryui.com/autocomplete/#multiple

除了用“,”分隔的术语外,我使用的是字符“|”分隔值。

$("#txtProjectNameAdd")
        .bind("keydown", function (event) {
            if (event.keyCode === $.ui.keyCode.TAB &&
            $(this).data("autocomplete").menu.active) {
                event.preventDefault();
            }
        }).autocomplete({
            source: function (request, response) {
                $.getJSON('@Url.Action("ProjectNameListMulti", "ProjectAssignment")', {
                    term: extractLast(request.term)
                }, response);
            },
            search: function () {
                var term = extractLast(this.value);
                if (term.length < 2) {
                    return false;
                }
            },
            focus: function () {
                return false;
            },
            select: function (event, ui) {
                var terms = split(this.value);
                terms.pop();
                terms.push(ui.item.value);
                terms.push("");
                this.value = terms.join("| ");
                return false;
            }
        });

 function split(val) {
        return val.split(/|\s*/);  
    }

 function extractLast(term) {
        return split(term).pop();
    }

我认为拆分功能有问题。根据jquery自动完成网站,拆分功能是

function split( val ) {
  return val.split( /,\s*/ );
}

所以我将 ',' 替换为 '|',但自动完成功能因更改而变得无响应。如何自定义拆分功能。

【问题讨论】:

  • 制作一个 jsfiddle 并将链接发布到它。

标签: jquery asp.net-mvc jquery-ui autocomplete


【解决方案1】:

|是正则表达式中的特殊字符,因此必须通过在它前面加一个 \

来对其进行转义

尝试使用

/\|\s*/

【讨论】:

  • 非常感谢安德鲁。我在哪里可以了解更多关于正则表达式中特殊字符的信息
  • 所有你想知道的,然后一些都在这个网站上:regular-expressions.info/characters.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 2013-11-19
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2012-02-17
  • 1970-01-01
相关资源
最近更新 更多