it-swarm.com.de

Die ausgewählte Aktualisierung funktioniert nicht

Ich habe ein ausgewähltes Dropdown ausgewählt. Ich habe den Inhalt der Optionen geändert und den Aufruf-Trigger gewählt: aktualisiert, aber die ausgewählte Dropdown-Liste wird nicht neu erstellt. Dies ist meine aktualisierte 

<select name="shortcode" style="width: 150px; display: none;" class="chosen_select chzn-done" id="select_shortcode">
   <option value=""></option> 
   <option value="7183">7183</option>
   <option value="7983">7983</option>
</select>

Und dies ist das gewählte Dropdown-Menü (Es sollte neu erstellt und die beiden letzten <li> entfernt werden)

<ul class="chzn-results">
   <li id="select_shortcode_chzn_o_1" class="active-result" style="">7183</li>
   <li id="select_shortcode_chzn_o_2" class="active-result" style="">7983</li>
   <li id="select_shortcode_chzn_o_3" class="active-result" style="">8208</li>
   <li id="select_shortcode_chzn_o_4" class="active-result" style="">8308</li>
</ul>

Dies ist mein jQuery-Code:

$('#select_shortcode_mask').change(function(){
    var shortcode_mask = $('#select_shortcode_mask').val();
    $('#select_shortcode').empty();
    var shortcode = {"7X83":["7183","7983"],"8x08":["8208","8308"]};
    $('#select_shortcode').append("<option value=''></option>");
    if(jQuery.isArray(shortcode[shortcode_mask])){
            $.each( shortcode[shortcode_mask], function( subkey, subvalue ) {
                $('#select_shortcode').append("<option value='"+subvalue+"'>"+subvalue+"</option>");
            })
    } else {
        var full_shortcode = ["7183","7983","8208","8308"];
        if(jQuery.isArray(full_shortcode)){
            $.each(full_shortcode, function( subkey, subvalue ) {
                $('#select_shortcode').append("<option value='"+subvalue+"'>"+subvalue+"</option>");
            })
        }
    }
    $("#select_shortcode").trigger("chosen:updated");
});

Gelöst: Ich verwende eine ältere Version.

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

Also entleeren ^^ 

25
Tien Hoang

Ich verwende das gewählte Plugin häufig, ich störe natürlich mehr als einmal auf dieses Problem.

normalerweise verwenden .trigger("chosen:updated") kann es lösen. Aber vor einer Minute funktioniert diese Methode nicht mehr, ich bin so verwirrt, weil ich dieselbe Funktion in 2 js-Datei verwende, sagen wir a.js und b.js, sie funktioniert in a.js, aber nicht in b.js. Ich kann nicht herausfinden, warum ... ich fast den Verstand verliere !!!

Also überprüfe ich die API noch einmal. Ich fand die .chosen("destroy"), inspirierte mich!

Und ich denke, es ist die Ultimate Solution : Zerstöre sie und baue sie neu auf.

$('.chosen').chosen("destroy").chosen();

Bin ich zu laut? : p

6
Kaiyu Lee

Ihre Änderungsfunktion ruft bei Änderung für das Element "#select_shortcode_mask" auf. Ihre Auswahlliste hat eine ID: "#select_shortcode"

2
Hydrospanners

Code:

$('#test')
  .val(1)
  .trigger('liszt:update')
  .removeClass('chzn-done');

$('#test_chzn').remove();


$("#test").chosen({
  width: "220px",
  no_results_text: "test"
});
0
Steven Delgado

Mein Weg ist das ...

$timeout(function() {
  $('#CampSrchId').trigger('chosen:updated');
}, 1000);

OR

window.setInterval(function() {
  $('#CampSrchId').trigger('chosen:updated');
}, 1000);      
0
Asad Ali Khan

Ich benutzte

$("select").chosen({ width: "100%" });//chosen hack

Wie bei der Verwendung von .trigger("chosen:updated"); schien dies das Problem nicht zu beheben. Es sieht hackig aus, funktioniert aber gut.

0
Jamie Paterson