JavaScript - Mover datos entre elementos

 
Vista:
sin imagen de perfil
Val: 24
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mover datos entre elementos

Publicado por John (6 intervenciones) el 27/01/2021 20:05:00
Hola, estoy tratando de conseguir que un elemento introducido por teclado y que posteriormente se guarda en un combobox, pueda pasarlo de un combo a otro.

Este es el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPEhtml>
    <html>
 
    <head>
        <meta http-equiv="content-type" content="text /html;charset=utf-8">
        <title></title>
 
    </head>
 
    <body>
        <h1 id="titulo"></h1>
        <form id="frmEntrada" name="frmEntrada">
            <label>Código de provincia</label>
            <input type="text" name="txtCodigo" id="txtCodigo"/>
            <br>
            <label>Provincia</label>
            <input type="text" name="txtProvincia" id="txtProvincia"/>
            <br>
            <input type="button" name="btnAgregar" id="btnAgregar" onclick="agregarProvincia();" value="Agregar provincia"/>
 
            <div>
                <select name="lstProvincias" id="lstProvincias" multiple>
                    <!-- <option value="SE">Sevilla</option> -->
                </select>
 
                <span style="display:inline-flex;flex-direction:column-reverse">
                    <input type="button" name="btnPasarDerecha" id="btnPasarDerecha" onclick="pasarDerecha();" value="➡️"/>
                    <input type="button" name="btnPasarIzquierda" id="btnPasarIzquierda" onclick="pasarIzquierda();" value="⬅️"/>
                </span>
 
                <select name="lstDestino" id="lstDestino" multiple>
 
                </select>
            </div>
        </form>
        <script type="text/javascript">
        "use strict";
 
        function agregarProvincia(){
            let sCodigo = frmEntrada.txtCodigo.value.trim();
            let sProvincia = frmEntrada.txtProvincia.value.trim();
 
            if(buscarCodigo(sCodigo) == false){
                let sOption ='<option value="' + sCodigo + '" >' + sProvincia + '</option>';
                frmEntrada.lstProvincias.innerHTML += sOption;
            }
        }
 
        function buscarCodigo(sCodigo){
            let bEncontrado = false;
 
            for(let i=0; i < frmEntrada.lstProvincias.options.length; i++){
                if(frmEntrada.lstProvincias.options[i].value == sCodigo){
                    bEncontrado = true;
                    break;
                }
            }
 
            return bEncontrado;
        }
 
        </script>
    </body>
 
    </html>

Como ven tengo creada la función para guardar provincias y otra función para buscar por código, pero no tengo ni idea de como hacer lo de mover elementos de un lado al otro (sin que se duplique).
Lo tengo todo mezclado si, pero el código va en otro fichero.
Aquí una imagen que de como esta:

001


Les agradecería que pudieran ayudarme gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 24
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Mover datos entre elementos

Publicado por John (6 intervenciones) el 27/01/2021 20:34:08
Encontré un código que funciona con datos precargados pero no consigo adaptarlo al mio , además me da error undefined en obj:

1
2
3
4
5
6
7
8
9
10
function pasar() {
    obj=document.getElementById('lstProvincias');
    if (obj.selectedIndex==-1) return;
    valor=obj.value;
    txt=obj.options[obj.selectedIndex].text;
    obj.options[obj.selectedIndex]=null;
    obj2=document.getElementById('lstDestino');
    opc = new Option(txt,valor);
    eval(obj2.options[obj2.options.length]=opc);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar