Um exemplo perfeitamente bom na documentação do Autocomplete com código-fonte.
jQuery
<script>
$(function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#city" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://gd.geobytes.com/AutoCompleteCity",
dataType: "jsonp",
data: {
q: request.term
},
success: function( data ) {
response( data );
}
});
},
minLength: 3,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
</script>
HTML
<div class="ui-widget">
<label for="city">Your city: </label>
<input id="city">
Powered by <a href="http://geonames.org">geonames.org</a>
</div>
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
log
.success: function( data ) {response( data );} works inside the ajax call. I mean, what is that
response () `funciona? Ele cria alguns<li>
elementos de acordo com os dados, mas se eu quiser personalizar esses<li>
elementos, o que devo fazer? Eu gostaria de adicionar um par de atributos ...Se você estiver retornando um objeto json complexo, será necessário modificar a função de sucesso do preenchimento automático da seguinte maneira.
fonte
Meu problema era que os usuários finais começavam a digitar em uma caixa de texto e recebiam sugestões de preenchimento automático (ACP) e atualizavam o controle de chamada se uma sugestão fosse selecionada, já que o ACP é projetado por padrão. No entanto, também precisei atualizar vários outros controles (caixas de texto, DropDowns, etc ...) com dados específicos para a seleção do usuário final. Tenho tentado descobrir uma solução elegante para o problema e acho que vale a pena compartilhar a que desenvolvi e espero que você economize pelo menos algum tempo.
WebMethod (SampleWM.aspx):
OBJETIVO:
NOTAS:
AutoComplete jQuery (AutoComplete.aspx):
fonte
Código PHP:
fonte
Usei a construção de
$.each (data [i], function (key, value)
Mas você deve pré-combinar os nomes dos campos de seleção com os nomes dos elementos do formulário. Então, no loop após "sucesso", preencha automaticamente os elementos do array "dados". Fiz isso: preenchimento automático de formulário com sucesso de Ajaxfonte