Ich verwende W2UI's multi select, um Elemente auszuwählen. Ich habe die Liste von meinem Server ausgefüllt und enthält rund 800 Elemente.W2UI multi Auswahl, die nicht den letzten Wert zurückgibt
$('#enum').w2field('enum', {
items: arrDish,
openOnFocus: true,
//onNew: displayValue,
onAdd: displayValue,
//markSearch:true,
onRemove: function (event) {
alert("removed");
},
renderItem: function (item, index, remove) {
var html = remove + '<span class="fa-trophy" style="'+ pstyle +'; margin-left: -4px;"></span>' + item.text;
//displayValue();
return html;
},
renderDrop: function (item, options) {
return '<span class="fa-star" style="'+ pstyle +'"></span>' + item.text;
}
});
function displayValue() {
console.log($('#enum').data('selected'));
selectedDish=getCol($('#enum').data('selected'),'text');
console.log(selectedDish); // am getting the values in the console log here but without the latest item
}
//below function is also working properly
function getCol(matrix, col){
var column = [];
for(var i=0; i<matrix.length; i++){
column.push(matrix[i][col]);
}
return column;
}
Das Problem ist, dass, wenn ich die displayValue
Funktion führen Sie die aktuelle Liste der ausgewählten Elemente zu erhalten, das letzte Element fehlt.
Ich habe versucht, ein einfaches Warnfeld auf onAdd
und onRemove
Option hinzufügen, was ich sehen kann, ist, dass diese Warnungen angezeigt werden, bevor das Element in der Liste dh hinzugefügt wird, wenn ich die Warnung schließe, wird das Element hinzugefügt/von der entfernt Liste.
Meine Anforderung ist, dass ich mein Diagramm aktualisieren möchte, wenn die Liste der ausgewählten Elemente geändert wird (zusammen mit der zuletzt ausgewählten Liste).
Musterkoffer:
Wenn ich 1 Eintrag in der Liste auswählen, wird die Konsole prints "0" Artikel, wieder, wenn ich 2 Artikel auswählen, die Konsole Druck 1 Artikel und so weiter.
Dies ist genau das, was ich hat getan. Aber dieser Ansatz macht das Ganze nur zur Hälfte des Problems lösen. Ich meine, wenn ich eine Suche ausführen möchte, nachdem ein Element hinzugefügt oder entfernt wurde, muss ich die Elemente in einem anderen Array speichern und die Suche danach ausführen, da das 'ausgewählte' die letzte Liste nicht zurückgibt. – driftking9987