Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di gorn
    Registrato dal
    Jun 2010
    Messaggi
    91

    disabilitare JQuery Autocomplete

    Salve a tutti.
    Su un sito ho implementato l'autocomplete (plugin jquery) su alcune combobox (select) per facilitare la ricerca.
    Per varie necessita però ho bisogno che su alcune select l'effetto (ma non lo stile degli elementi) autocomplete venga disabilitato.
    Ho provato con una ricerca su Google , dopo aver cercato qui , ma le varie soluzioni sembrano non funzionare.
    Posto il codice dell'autocomplete
    codice:
    (function( $ ) {
    $.widget( "ui.combobox", {
    _create: function() {
    var input,
    self = this,
    select = this.element.hide(),
    selected = select.children( ":selected" ),
    value = selected.val() ? selected.text() : "",
    wrapper = this.wrapper = $( "<span>" )
    .addClass( "ui-combobox" )
    .insertAfter( select );
    
    input = $( "<input>" )
    .appendTo( wrapper )
    .val( value )
    .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"), "$1" ),
    	value: text,
    	option: this
    	};
    	}) );
    	},
    select: function( event, ui ) {
    ui.item.option.selected = true;
    self._trigger( "selected", event, {
    	item: ui.item.option
    });
    },
    change: function( event, ui ) {
    	if ( !ui.item ) {
    	var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "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
    	$( this ).val( "" );
    	select.val( "" );
    	input.data( "autocomplete" ).term = "";
    	return false;
    	}
    	}
    	}
    })
    .addClass( "ui-widget ui-widget-content ui-corner-left" );
    input.data( "autocomplete" )._renderItem = function( ul, item ) {
    	return $( "[*]" )
    	.data( "item.autocomplete", item )
    	.append( "<a>" + item.label + "</a>" )
    	.appendTo( ul );
    	};
    
    	$( "<a>" )
    	.attr( "tabIndex", -1 )
    	.attr( "title", "Show All Items" )
    	.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" );
    	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();
    });
    },
    
    destroy: function() {
    this.wrapper.remove();
    this.element.show();
    $.Widget.prototype.destroy.call( this );
    }
    });
    })( jQuery );
    	
    
    $(document).ready(function() {
       $('.autocomplete').combobox();
    Ora ho provato varie soluzione per disabilitarlo:
    codice:
    $("#miaselect").autocomplete("disabled");
    oppure
    codice:
    var disabled = $( "miaselect" ).autocomplete( "option", "disabled" );
     $( "miaselect" ).autocomplete( "option", "disabled", true );
    ma tutte non sembrano avere effetto e la select continua ad avere il suo effetto.
    Volevo sapere se qualcuno ha gia dovuto affrontare questa problematica e se esiste una soluzione per disabilitare tale effetto.
    ps. uso jquery versione 1.8.23
    In attesa di una vostra risposta,
    Il problema non è la caduta, ma l'atterraggio (Cit.)

  2. #2
    Utente di HTML.it L'avatar di echoweb
    Registrato dal
    Sep 2008
    Messaggi
    419
    prova così:

    codice:
    $("#miaselect").autocomplete({ disabled: true });


    "Non soffocare la tua ispirazione e la tua immaginazione,
    non diventare lo schiavo del tuo modello"

    Vincent van Gogh

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.