我按照本网站的指示关注所有内容:
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();
}
我认为Split功能存在问题。根据jquery自动完成网站,分割功能是
function split( val ) {
return val.split( /,\s*/ );
}
所以我用'|'替换',',但是自动完成变得没有响应。如何自定义分割功能。
答案 0 :(得分:1)
|是正则表达式中的一个特殊字符,因此必须通过前面的\
进行转义尝试使用
/\|\s*/