我知道这个问题已被涵盖,但没有一个解决方案似乎对我有用。这是我的代码
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格式提供数据源。但我得到的是用户名-id。我需要显示用户名而不是id,并以隐藏格式检索id。
由于
答案 0 :(得分:0)
来源包含一系列配对值(标签和值)。 Label是可视化表示,值应由您的代码处理。
在选择功能中,您可以使用 ui.item.value 和 ui.item.label 来源数组。