Problem polega na tym, że przy aktualizacji rekordów w inputSelectedCountries (input type select multiple) zamiast standardowych kluczy pobranych wcześniej ($(this).val()) podmienia je na własne klucze. A konieczne jest aby klucze oraz wartości pozostały niezmienione.
Kod
addCountries.on("click", function(e) {
$("#inputAvailableCountries option:selected").each(function () {
selectedCountriesArray[$(this).val()] = $(this).text(); // POBIERANIE WARTOŚCI, KLUCZ JEST OK
});
selectedCountriesArray = $.unique(selectedCountriesArray);
selectedCountriesArray = $.grep(selectedCountriesArray,function(n){ return(n) });
inputSelectedCountries.html("");
$.each( selectedCountriesArray, function(v, t) {
inputSelectedCountries.append('<option value="' + v + '">' + t + '</option>'); // KLUCZ NIE JEST POBIERANY Z TABLICY TYLKO TWORZONY OD NOWA
});
});
$("#inputAvailableCountries option:selected").each(function () {
selectedCountriesArray[$(this).val()] = $(this).text(); // POBIERANIE WARTOŚCI, KLUCZ JEST OK
});
selectedCountriesArray = $.unique(selectedCountriesArray);
selectedCountriesArray = $.grep(selectedCountriesArray,function(n){ return(n) });
inputSelectedCountries.html("");
$.each( selectedCountriesArray, function(v, t) {
inputSelectedCountries.append('<option value="' + v + '">' + t + '</option>'); // KLUCZ NIE JEST POBIERANY Z TABLICY TYLKO TWORZONY OD NOWA
});
});