function includemeter() { var excludedfield = document.getElementById('meter_excluded'); var includedfield = document.getElementById('meter_included');
for (var i = 0; i < excludedfield.options.length; i++) { if (excludedfield.options[i].selected) { var opt = new Option(excludedfield.options[i].text, excludedfield.options[i].value); includedfield.options[includedfield.options.length] = opt; excludedfield.options[i] = null; } } }
function excludemeter() { var excludedfield = document.getElementById('meter_excluded'); var includedfield = document.getElementById('meter_included');
for (var i = 0; i < includedfield.options.length; i++) { if (includedfield.options[i].selected) { var opt = new Option(includedfield.options[i].text, includedfield.options[i].value);
Så kommer mit problem: Hvis jeg markerer flere options i en select for at flytte dem, kommer de ikke med, allesammen, kun nogle af dem. Jeg ville jo helst have at præcis dem, man markerer, kommer med.
jeg tænkte på, om det kan have noget at gøre med, at jeg sletter en option lige så snart, jeg har oprettet den i den anden? Dvs, at length attributten ændres mens for-løkken kører?
Problemet er det du selv skriver, du sletter elementerne mens løkken kører.
Jeg har rettet lidt i den og tilføjet et nyt array der gemmer de værdier der skal slettes, og de bliver så slettet efterfølgende. Jeg har kun lavet den ene funktion, du kan gøre det tilsvarende med den anden.
function includemeter() { var excludedfield = document.getElementById('meter_excluded'); var includedfield = document.getElementById('meter_included'); var move_fields = []; // nyt array
for (var i=0; i < excludedfield.options.length; i++) { if (excludedfield.options[i].selected) { var opt = new Option(excludedfield.options[i].text, excludedfield.options[i].value); includedfield.options[includedfield.options.length] = opt; move_fields.push(i); // push nummeret til array } }
for (var i=0; i < move_fields.length; i++) { // kør array og slet felter (tager højde for at rækkefølgen ændre mens vi sletter - derfor move_fields[i]-i. excludedfield.options[move_fields[i]-i] = null; } }
Jeg havde selv fusket med en løsning, der mindede MEGET om din, men da min lavede småfejl, bruger jeg din i stedet - det lader til at virke.
Tak for hjælpen folkens :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.