Come faccio a ripristinare un’opzione di selezione scelta jquery con jQuery?

Ho provato numerose cose e niente sembra funzionare.

Sto usando il plugin jQuery e Chosen.

Metodi che ho provato:

var select = jQuery('#autoship_option'); select.val(jQuery('options:first', select).val()); jQuery('#autoship_option').val(''); jQuery('#autoship_option').text(''); jQuery('#autoship_option').empty(''); jQuery("#autoship_option option[value='']").attr('selected', true); 

Mostra sempre l’opzione Autoship triggers dopo che è stata selezionata. Non riesco a ottenerlo per cancellare la selezione.

Ecco la casella di selezione:

       Active Autoship  

    Chiunque abbia familiarità con Chosen e sia in grado di cancellare una casella di selezione con un’opzione? (Avrà più opzioni in futuro.

    Impostare il valore dell’elemento select su una stringa vuota è il modo corretto per farlo. Tuttavia, questo aggiorna solo l’elemento di select root. L’elemento personalizzato chosen non ha idea che la select root sia stata aggiornata.

    Per notificare che la select è stata modificata, è necessario eseguire il trigger chosen:updated :

     $('#autoship_option').val('').trigger('chosen:updated'); 

    oppure, se non sei sicuro che la prima opzione sia una stringa vuota, usa questo:

     $('#autoship_option') .find('option:first-child').prop('selected', true) .end().trigger('chosen:updated'); 

    Leggi la documentazione qui (trova la sezione intitolata Aggiornamento scelto dynamicmente ).


    PS Le versioni precedenti di Chosen utilizzano un evento leggermente diverso:

     $('#autoship_option').val('').trigger('liszt:updated'); 

    La prima opzione dovrebbe essere sufice: http://jsfiddle.net/sFCg3/

     jQuery('#autoship_option').val(''); 

    Ma devi assicurarti di eseguirlo su un evento come il click di un pulsante o ready o documento, come su jsfiddle.

    Assicurarsi inoltre che ci sia sempre un attributo value sui tag delle opzioni. In caso contrario, alcuni browser restituiscono sempre vuoto su val() .

    Modificare:
    Ora che hai chiarito l’uso del plugin scelto, devi chiamare

     $("#autoship_option").trigger("liszt:updated"); 

    dopo aver modificato il valore per aggiornare l’intereface.

    http://harvesthq.github.com/chosen/

    Prova a ricaricare la casella di selezione aggiornata con l’ultima scelta JS.

     $("#form_field").trigger("chosen:updated"); 

    http://harvesthq.github.io/chosen/

    Aggiornerà il menu a discesa scelto con la nuova casella di selezione caricata con Ajax.

    Prova questo:

     $("#autoship_option option[selected]").removeAttr("selected"); 

    Io uso questo:

    $('idSelect').val([]);

    testato su IE, Safari e Firefox

     $('#autoship_option').val('').trigger('liszt:updated'); 

    e impostare il valore di opzione predefinito su '' .

    Deve essere utilizzato con jQuery aggiornato scelto disponibile a questo link: https://raw.github.com/harvesthq/chosen/master/chosen/chosen.jquery.min.js .

    Ho passato un giorno intero a scoprire che jquery.min è diverso da chosen.jquery.min

     jQuery("#autoship_option option:first").attr('selected', true); 

    Questo è più efficace di trovare.

     $('select').children('option').first().prop('selected', true) $('select').trigger("chosen:updated"); 

    Non sono sicuro se questo si applica alla versione precedente di scelta, ma ora nella versione corrente (v1.4.1) hanno un’opzione $('#autoship_option').chosen({ allow_single_deselect:true }); Questo aggiungerà un’icona ‘x’ accanto al nome selezionato. Usa la ‘x’ per cancellare il campo ‘seleziona’.

    PS: assicurati di aver scelto ‘sprite.png’ nel posto giusto secondo il file scelto.css in modo che le icone siano visibili.

     var config = { '.chosen-select' : {}, '.chosen-select-deselect' : {allow_single_deselect:true}, '.chosen-select-no-single' : {disable_search_threshold:10}, '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'}, '.chosen-select-width' : {width:"95%"} } for (var selector in config) { $(selector).chosen(config[selector]); } 

    Usa sopra la configurazione e applica class='chosen-select-deselect' per deselezionare manualmente e impostare il valore vuoto

    o se vuoi deselezionare l’opzione in tutte le combinazioni, quindi applica la configurazione come sotto

     var config = { '.chosen-select' : {allow_single_deselect:true},//Remove if you do not need X button in combo '.chosen-select-deselect' : {allow_single_deselect:true}, '.chosen-select-no-single' : {disable_search_threshold:10}, '.chosen-select-no-results': {no_results_text:'Oops, nothing found!'}, '.chosen-select-width' : {width:"95%"} } for (var selector in config) { $(selector).chosen(config[selector]); } 

    Nella versione 49 di Chrome

    hai sempre bisogno di questo codice

    $("select option:first").prop('selected', true)

    Penso che tu debba assegnare un nuovo valore alla selezione, quindi se vuoi cancellare la tua selezione probabilmente vuoi assegnarla a quella che ha valore = “”. Penso che sarai in grado di ottenerlo assegnando il valore alla stringa vuota così .val (”)

    HTML:

       

    JS:

     $('#rs').on('click', function(){ $('autoship_option').find('option:selected').removeAttr('selected'); }); 

    Fiddle: http://jsfiddle.net/Z8nE8/

    Puoi provare a resettare (vuoto) a discesa

      $("#autoship_option").click(function(){ $('#autoship_option').empty(); //remove all child nodes var newOption = $(''); $('#autoship_option').append(newOption); $('#autoship_option').trigger("chosen:updated"); }); 

    Le nuove librerie scelte non usano il liszt. Ho usato il seguente:

     document.getElementById('autoship_option').selectedIndex = 0; $("#autoship_option").trigger("chosen:updated"); 

    Se è necessario selezionare la prima opzione indipendentemente dal suo valore (a volte il primo valore dell’opzione non è vuoto), utilizzare questo:

     $('#autoship_option').val($('#autoship_option option:first-child').val()).trigger("liszt:updated"); 

    Otterrà il valore della prima opzione e la imposterà come selezionata, quindi attiverà l’aggiornamento su Chosen. Quindi funziona come ripristinare la prima opzione in elenco.

    Esattamente ho avuto lo stesso requisito. Ma la reimpostazione dell’elenco a discesa impostando semplicemente una stringa vuota con jquery non funzionerà. Dovresti anche triggersre l’aggiornamento.

     Html:  Jquery: $('.chosen-control').val('').trigger('liszt:updated'); 

    a volte in base alla versione del controllo scelto che si sta utilizzando, potrebbe essere necessario utilizzare la syntax di seguito.

     $('.chosen-control').val('').trigger("chosen:updated"); 

    Riferimento: come ripristinare l’opzione di selezione scelta da Jquery

     jQuery('.chosen-processed').find('.search-choice-close').click(); 

    Semplice modifica di trigger come questa:

     $('#selectId').val('').trigger('change');