2013-09-27 2 views
0

Я использую jquery Ui для многозначного автозаполнения, и он работает нормально, но после того, как первое предложение выбрано, и для следующего запроса он отправляет все значение текстового поля, оно не разбивается, например: предположим, в текстовом поле автозаполнения я набрал «A», он дает предложение типа «ABC», «ACB» и некоторые другие значения, теперь . Я выберу «ABC», а текстовое поле автозаполнения будет выглядеть как «ABC», и я наберу «B», он должен послать только «B» на сервер вместо этого он посылает «ABC, B»multi value автозаполнение с использованием JQuery UI не работает

услышать то, что я хочу: после выбора первого времени предложения я должен отправить запрос, что настоящий после «» как я могу это сделать

это мой код

$(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; 
    } 
    }); 

});

+0

[Demo] (http://jqueryui.com/autocomplete/#multiple-remote) делает работу, как вы сказать. –

ответ

0

Вы отправляете полный срок из-за этого: data:{"term":request.term}

Просто измените это data:{"term":extractLast(request.term)}

+0

Спасибо за ваш ответ –

Смежные вопросы