我的头衔可能有点难以理解。我正在努力做到以下 jquery autocomplete:
看到这个小提琴:
如果用户输入“j”,他就会得到Jochen + John。到现在为止还挺好。让我们说他选择了 约翰。我想知道的是,他在输入中选择了约翰的一切 除了括号中的数字外,它是切割的。结果应如下所示:
7,
在此操作之后,用户应该能够在逗号后再次开始写一个名字, 假设他写了“chris”,在他选择之后,输入应该如下:
7,9
等等。这可能吗?
我认为第一步是检查“onfinishedselect”行动
select: function (event, ui){
alert("|" + $("#targetID").val() + "|1stAlert");
}
喜欢这篇文章:jQuery UI autocomplete fire new event after selecting an item
亲切的问候,并感谢您的帮助,
贝
答案 0 :(得分:1)
您可以使用multiple values demo的代码并使用正则表达式仅插入括号之间的数字:
function extractLast( term ) {
return split( term ).pop();
}
function split( val ) {
return val.split( /,\s*/ );
}
$(function() {
var availableTags = [
"Max (1)",
"Paul (3)",
"John (7)",
"Jochen (11)",
"Chris (9)"
];
$( "#tags" ) .autocomplete({
minLength: 0,
source: function( request, response ) {
// We trim the search term before comparing to the source
request.term = $.trim(request.term);
// delegate back to autocomplete, but extract the last term
response( $.ui.autocomplete.filter(
availableTags, extractLast( request.term ) ) );
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the number between parentheses for the selected item
var num = ui.item.value.match(/\((\d+)\)/);
var value = num[1];
terms.push( value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( "," );
return false;
}
});
});
请在此处查看jsFiddle:http://jsfiddle.net/96Y2y/2/
答案 1 :(得分:0)
也许最好的解决方案是将数字放在另一个非自动完成的字段中。
你可以使用这个插件https://github.com/dyve/jquery-autocomplete的函数'onItemSelect'来做到这一点