Proba de poner "new" delante del $.postEstas llamando a un xhr dentro de otro. Esto no es Inception...
Enviado desde mi iPhoneEl POST es asincronico, asi q no deberia dejarte esperando, queres pegar un poco de codigo aca para verlo?
2013/1/8 maxib2007 <maxib2007@gmail.com>
Bueno basicamente yo use el code que provee Jquery UI para crear un combobox autocomplete.Si quiero hacer algo cuando se selecciona un valor del combobox, con el evento select le meto un alert, lo que sea, me lo toma.Pero el problema viene si uso un $.post, ahi entra en espera hasta que tira timeout, obligandome a reniciar la pagina.El problema es que yo necesito hacer un post a un php para recibir ciertos datos, no hay otra forma.Que puedo hacer?
Re: [gtug-bsas] Necesito una mano con Jquery combobox autocomplete
martes, 8 de enero de 2013
bueno, les pego el codigo que hice:
$(function() {
$.widget( "ui.combobox", {
_create: function() {
var input,
that = this,
select = this.element.hide(),
selected = select.children( ":selected" ),
value = selected.val() ? selected.text() : "",
wrapper = this.wrapper = $( "<span>" )
.addClass( "ui-combobox" )
.insertAfter( select );
function removeIfInvalid(element) {
var value = $( element ).val(),
matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( value ) + "$", "i" ),
valid = false;
select.children( "option" ).each(function() {
if ( $( this ).text().match( matcher ) ) {
this.selected = valid = true;
return false;
}
});
if ( !valid ) {
// remove invalid value, as it didn't match anything
$( element )
.val( "" )
.attr( "title", value + " no se encuentra ninguna entrada" )
.tooltip( "open" );
select.val( "" );
setTimeout(function() {
input.tooltip( "close" ).attr( "title", "" );
}, 2500 );
input.data( "autocomplete" ).term = "";
return false;
}
}
input = $( "<input>" )
.appendTo( wrapper )
.val( value )
.attr( "title", "" )
.addClass( "ui-state-default ui-combobox-input" )
.autocomplete({
delay: 0,
minLength: 0,
source: function( request, response ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
response( select.children( "option" ).map(function() {
var text = $( this ).text();
if ( this.value && ( !request.term || matcher.test(text) ) )
return {
label: text.replace(
new RegExp(
"(?![^&;]+;)(?!<[^<>]*)(" +
$.ui.autocomplete.escapeRegex(request.term) +
")(?![^<>]*>)(?![^&;]+;)", "gi"
), "<strong>$1</strong>" ),
value: text,
option: this
};
}) );
},
select: function( event, ui ) {
ui.item.option.selected = true;
that._trigger( "selected", event, {
item: ui.item.option
});
},
change: function( event, ui ) {
if ( !ui.item )
return removeIfInvalid( this );
}
})
.addClass( "ui-widget ui-widget-content ui-corner-left" );
input.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
$( "<a>" )
.attr( "tabIndex", -1 )
.attr( "title", "Show All Items" )
.tooltip()
.appendTo( wrapper )
.button({
icons: {
primary: "ui-icon-triangle-1-s"
},
text: false
})
.removeClass( "ui-corner-all" )
.addClass( "ui-corner-right ui-combobox-toggle" )
.click(function() {
// close if already visible
if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
input.autocomplete( "close" );
removeIfInvalid( input );
return;
}
// work around a bug (likely same cause as #5265)
$( this ).blur();
// pass empty string as value to search for, displaying all results
input.autocomplete( "search", "" );
input.focus();
});
input
.tooltip({
position: {
of: this.button
},
tooltipClass: "ui-state-highlight"
});
},
destroy: function() {
this.wrapper.remove();
this.element.show();
$.Widget.prototype.destroy.call( this );
}
});
$( "#rubro" ).combobox();
$( "#tipo_negocio" ).combobox();
$( "#provincia" ).combobox();
$( "#localidad" ).combobox();
$( "#rubro_servicios" ).combobox();
$("#rubro_servicios").on('change', function(){
$.post("comprobar_registro2.php", { ui: ui }, function(data){
$("#list_servicios").html(data);
});
});
});
El lugar donde lo aplico es http://designmarket.com.ar/admin_prestadores/anadir_servicios.php
siendo #rubro_servicios el combobox que intento ponerle el post.
El 8 de enero de 2013 17:58, Jorge Cordero <cordero.jorgeluis@gmail.com> escribió:
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.