選択イベントでオートコンプリート プラグインを再バインドしたいのですが、実際には、選択した項目を提案から削除したいと考えています。現在、コードは以下に貼り付けられているようなものです。選択関数でプラグイン呼び出し全体をコピーすると、コピーされた呼び出しの選択イベントにも貼り付ける必要があるため、意味がありません。他に簡単な方法はありますか?
$("#txtEmployeeID").autocomplete({
source: function (request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
var matching = $.grep(newEmployeesWithIds, function (value) {
var name = value.value;
var id = value.id;
return matcher.test(name) || matcher.test(id);
});
response(matching);
},
select: function (event, value) {
$.ajax({
type: "GET", //GET or POST or PUT or DELETE verb
url: "http://localhost:46455/EmployeeSearchService.svc/GetEmployee", // Location of the service
data: {
"name": value.item.value
}, //Data sent to server
dataType: "Json", //Expected data format from server
processdata: "false", //True or False
success: function (employee) {//On Successfull service call
//INSERTING THE SELECTED OBJECT IN A UL
var employee = $.parseJSON(employee);
$('#ulSelectedEmployees').append($('<li>').attr('id', employee.TRGEmpID).css('padding', '5px').attr('class', 'ui-menu-item').html(employee.FullName).append($('<img>').attr('src', 'Styles/images/close_icon.png').attr('height', '20px').css('float', 'right').css('padding', '2px 13px')));
if ($('#ulSelectedEmployees').css('display') == 'none')
{
$('#ulSelectedEmployees').show();
$('#' + employee.TRGEmpID).fadeIn(700);
}
else
{
$('#' + employee.TRGEmpID).fadeIn(700);
}
/*DELETING THE ELEMENT TO REBIND AUTOCOMPLETE*/
for(var k = 0 ; k < newEmployeesWithIds.length ; k ++)
{
if(newEmployeesWithIds[k].id == employee.TRGEmpID)
break;
}
newEmployeesWithIds.splice(k, 1);
},
error: function (msg) {//On UnSuccessfull service call
ServiceFailed(msg);
}
});
}
});