複数値のオートコンプリートにjquery Uiを使用していますが、正常に動作していますが、最初の提案が選択された後、次のリクエストではテキストボックスの値全体が送信され、分割されていません。たとえば、オートコンプリートテキストボックスに「 A 」と入力したとします。 '、' ACB ' およびいくつかの値、今度は ' ABC ' を選択し、オートコンプリート テキスト ボックスが ' ABC ' のように表示されます。 B'
私が欲しいものを聞いてください: 最初の提案を選択した後、「、」の後に存在する要求を送信する必要があります。
これは私のコードです
$(function() {
function split( val ) {
return val.split( /,\s*/ );
}
function extractLast( term ) {
alert(term);
return split( term ).pop();
}
$( "#authorList" ).bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).data( "ui-autocomplete" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
source: function (request, response) {
$.ajax({
url: '${pageContext.request.contextPath}/catalogue/getMultiAuthor.action',
dataType: "json",
data:{"term":request.term},
success: function (data) {
response($.map(data, function (term) {
return {
label: 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 selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
});