0
私はこの質問がカバーされていることを知っていますが、解決策のどれも私にとってはうまくいかないようです。これは私のコードですJQueryオートコンプリート検索ID
var dialogForm = getDialogForm();
var $dialog = $('<div></div>').html(dialogForm)
.dialog
({
autoOpen: false,
title: "New Message",
draggable: false,
modal: true,
dialogClass: "bg_FFF",
position: ["", 120],
resizable: false,
width: 440,
beforeClose: function(event, ui){ $('.contactsInput').val("");
$('.msgInput').val("");
$(".removeContact").parent().remove();
ignored.length = 0;}
});
$('.cancelDialog').live("click", function()
{
//close dialog
$dialog.dialog('close');
});
//send message is clicked
$(".sendMsg").live("click", function()
{
sendMsg();
});
//items to be ingnored
var ignored = [];
var contactsArray = getUserContacts();
//attach autocomplete
$(".contactsInput").autocomplete({
minLength: 1,
//define callback to format results
source: function(req, add){
//create an empty array
var contactsList = [];
//process response
$.each(contactsArray, function(index, val)
{
if(ignored.indexOf(val) == -1)
{
contactsList.push(val);
}
});
//pass array to callback
add($.ui.autocomplete.filter(contactsList, extractLast(req.term)));
},
//define select handler
select: function(e, ui){
//prevent default action
e.preventDefault();alert(ui.item.toSource());
//create formatted contact
var contact = ui.item.value,
span = $("<span>").text(contact);
a = $("<a>").addClass("removeContact").attr({ title: "Remove " + contact }).text("x").appendTo(span);
//add contact to contact div
span.insertBefore(".contactsInput");
//clear input
$(".contactsInput").val("").css("top", 2);
ignored.push(ui.item.value)
},
//define select handler
change: function() {
//prevent 'to' field being updated and correct position
$(".contactsInput").val("").css("top", 2);
}
});
私はオートコンプリート内の名前のIDを取得しようとしています。私は、データソースを、username-idの形式で配列からローカルに供給しています。しかし、私が得るのはusername-idだけです。 idを表示するのではなく、隠しフォーマットでidを取得するにはユーザー名が必要です。
おかげ
["cars"、id]が返される配列がありますが、運がない – JamesBondInBlack
配列を別の形式に変換する必要がありますか? – JamesBondInBlack
あなたは[{label: 'cars'、value:id}、...]のような配列を送る必要があります。 – Marle1