I´m trying to use the JQuery UI Autocomplete plugin (click to see the demo page of JQuery UI Autocomplete plugin)
I´m using as datasource a list of objects as bellow:
Change your autocomplete call to the following:
$("#txtCidade").autocomplete({
source: availableTags,
select: function(event, ui) {
$("#hidCidade").val(ui.item.label);
}
});
#txtCidade
should automatically pckup the selected label when an autocomplete item is clicked on.
See a jsFiddle example here.
I´ve solved the issue creating the handlers for OnFocus and OnSelect and returning false in each one.
function OnFocus(event, ui)
{
$( "#txtCidade" ).val( ui.item.label );
return false;
}
function OnSelect(event, ui)
{
var item = ui.item;
var itemLabel = item.label;
var itemValue = item.value;
var campo = $("#txtCidade");
$("#hidCidade").val(itemValue);
$("#txtCidade").val(itemLabel);
var campoValue = campo.val();
var hidCampoValue = $("hidCidade").val();
return false;
}
Since I just had to solve this too. I thought I would show my solution. IMHO it is cleaner since you don't need the separate OnSelect and OnFocus functions. (though it really does the same thing as what rperson ended up doing)
$('#txtCidade').autocomplete({
source: availableTags,
focus: function(event, ui) {
$(this).val(ui.item.label);
return false;
},
select: function(event, ui) {
$('#hidCidade').val(ui.item.value);
$(this).val(ui.item.label);
return false;
}
});