Wenn ich versuche, den Dirrert-Wert über Ajax erneut auszuwählen?
das erste mal die funktion das richtige tun
nach zweimal oder mehr, wenn ich die num1-Auswahloption geändert habe
die andere num2 select sollte aktualisiert werden, indem Sie etwas anderes auswählen option val
aber nicht alle Optionen die ich brauche ausgewählt oder gar keine ausgewählt
Sagen Sie uns, was passieren soll.
Wenn ich das eine wähle Element ändere
die select 2 brauchen durch die ausgewählte andere Option Basic die Option, die ich über Ajax bekomme
Sagen Sie uns, was stattdessen passiert.
etwas für die Funktion tun {
$("#one option[value=1]').attr('selected', true);
}
$("#one").val(1).trigger("ausgewählt:aktualisiert");
ein Wert 1
dann
etwas für die Funktion tun {
$("#one option[value=1]').attr('selected', true);
$("#one option[value=3]').attr('selected', true);
}
$("#one").val(1).trigger("ausgewählt:aktualisiert");
dann bekomme ich vielleicht nix zu selektieren nach manchmal später???
Ich weiß nicht, was ich tun soll, damit es die richtige Option auswählen kann, die ich danach benötigt habe?
Entschuldigung für das Englisch meiner Armen :sob:
Wenn ich das richtig verstanden habe, fügen Sie der Auswahl mithilfe einer Ajax-Anfrage neue Optionen hinzu und lösen dann chosen:updated
, damit Chosen die Änderungen widerspiegelt?
Bitte richten Sie eine Geige ein , um das Problem zu demonstrieren, und dann können wir entscheiden, ob es sich um einen Fehler oder nur um ein Problem mit Ihrer Implementierung handelt.
DANKE FÜR REP dies
NICHT SO .. die Optionsliste nicht aktualisieren
die Optionsliste ist immer gleich
aber der Wert nicht so
Jedes Mal, wenn ich den Wert ändern möchte, triggere ich ausgewählt: über jQuery
Beim ersten Mal stimmte der Wert der ausgewählten Artikel
wird aber beim serivel mal später schief gehen
Ich kann nicht den richtigen Wert des ausgewählten Elements ermitteln....
Beim ersten Laden war die Funktion richtig, nur eine Option muss ausgewählt werden
dann noch einmal
so sollte es sein
Hallo Blankhang,
dein Problem kann damit gelöst werden.
was machst du:
$("#one option[value=1]').attr('selected', true);
$("#one option[value=3]').attr('selected', true);
$("#one").val(1).trigger("ausgewählt:aktualisiert");
was ist zu tun
$("#one option[value=1]').attr('selected', true);
$("#one option[value=3]').attr('selected', true);
$("#one").trigger("ausgewählt:aktualisiert");
Geben Sie keinen Wert an, während Sie das Update auslösen;
Ich hatte das gleiche Problem, nachdem ich den Auswahlstatus der Optionen einer Mehrfachauswahl durch JS aktualisiert und dann versucht hatte, Chosen zu aktualisieren, um die Auswahl anzuzeigen. Ich habe eine Geige gebaut, die dieses Verhalten demonstriert:
https://jsfiddle.net/5wbzxg27/
Es gibt 3 Schaltflächen:
Jede Option wird nur einmal im Auswahlfeld angezeigt, auch wenn Sie dieselbe Schaltfläche mehrmals drücken (und aktualisieren) . Das Skript läuft in Ordnung, der ausgewählte Zustand der ursprünglichen Auswahloptionen ändert sich in Ordnung, aber das Ausgewählte zeigt die Optionen nur beim ersten Mal an.
Hoffe das hilft.
@cinemazealot versuche folgenden Code:
$("#mySelect").chosen({
placeholder_text_multiple: 'Something',
});
$('button#all').on('click', function() {
$('#mySelect option').attr('selected', false); // selects all
var options = [];
for (var i=0; i < $('#mySelect option').length; i++){
options.push($('#mySelect option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#first').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="first"] option').length; i++){
options.push($('#mySelect optgroup[label="first"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
$('button#second').on('click', function() {
$('#mySelect option').attr('selected', false); // clears all
var options = [];
for (var i=0; i < $('#mySelect optgroup[label="second"] option').length; i++){
options.push($('#mySelect optgroup[label="second"] option')[i].value);
};
$('#mySelect').val(options);
$("#mySelect").trigger("chosen:updated"); // updates chosen
return false; // returns false not to post the surrounding form
});
Es sieht vielleicht klobig und groß aus, aber es scheint zu funktionieren
@pashaUSA, du bist die Beste! :) Sorry für die späte Reaktion, ich hatte andere laufende Projekte. Aber deine Lösung tut nur das, was sie tun soll. Vielen Dank! :)
Hilfreichster Kommentar
Hallo Blankhang,
dein Problem kann damit gelöst werden.
was machst du:
$("#one option[value=1]').attr('selected', true);
$("#one option[value=3]').attr('selected', true);
$("#one").val(1).trigger("ausgewählt:aktualisiert");
was ist zu tun
$("#one option[value=1]').attr('selected', true);
$("#one option[value=3]').attr('selected', true);
$("#one").trigger("ausgewählt:aktualisiert");
Geben Sie keinen Wert an, während Sie das Update auslösen;