pasar el valor de un select a otro select

publicado por: Anonymous

tengo dos vistas, vista1= victimas y vista2 = denunciante que son iguales solo cambia el nombre y el id de la persona ingresada 1 = victima y 3= denunciante.

en denunciante tengo un check que cuando se marca tendría que jalarme los datos de la victima,

el escript que uso para pasar los datos de victima a denunciante es:

function Victima(valor) {
    if (valor == 1) {

        $("#anonimo").attr("style", "display:none") // esto es para ocultar otro check
        document.datos.PRIMER_NOMBRE.value = document.getElementById("PRIMER_NOMBREV").value
        document.datos.SEGUNDO_NOMBRE.value = document.getElementById("SEGUNDO_NOMBREV").value
        document.datos.TERCER_NOMBRE.value = document.getElementById("TERCER_NOMBREV").value
        document.datos.PRIMER_APELLIDO.value = document.getElementById("PRIMER_APELLIDOV").value
        document.datos.SEGUNDO_APELLIDO.value = document.getElementById("SEGUNDO_APELLIDOV").value
        document.datos.APELLIDO_CASADA.value = document.getElementById("APELLIDO_CASADAV").value  
        document.datos.TELEFONO_CELULAR.value = document.getElementById("TELEFONO_CELULARV").value  
        document.datos.TELEFONO_CASA.value = document.getElementById("TELEFONO_CASAV").value  
        document.datos.TELEFONO_OTROS.value = document.getElementById("TELEFONO_OTROSV").value        


    } else {

        $("#anonimo").removeAttr("style", "display:none")
    }

}

me hace lo que necesito, PERO solo en los input y tengo varios campos de que no me jala los datos

mi select de victima es :

<label>10. Departamento:<b style="color:red">*</b></label>
            <select class="form-control" id="DEPARTAMENTOV" name="DEPARTAMENTO" onchange="MunicipioDenunciante(this.value);" required>
                <option value="99">Ignorado</option>
                @foreach (var d in ValorDepto)
                {
                    if (d.COD_DEPARTAMENTO == DEPARTAMENTO)
                    {
                        <option value="@d.COD_DEPARTAMENTO" selected id="DEPVALOR">@d.NOMBRE</option>
                    }
                    else
                    {
                        <option value="@d.COD_DEPARTAMENTO">@d.NOMBRE</option>
                    }
                }
            </select>

y deseo reflejarlo en el select de denunica:

<label>10. Departamento:<b style="color:red">*</b></label>
            <select class="form-control" id="DEPARTAMENTOD" name="DEPARTAMENTO" onchange="MunicipioDenunciante(this.value);" required>
                <option value="99">Ignorado</option>
                @foreach (var d in ValorDepto)
                {
                    if (d.COD_DEPARTAMENTO == DEPARTAMENTO)
                    {
                        <option value="@d.COD_DEPARTAMENTO" selected id="DEPVALOR">@d.NOMBRE</option>
                    }
                    else
                    {
                        <option value="@d.COD_DEPARTAMENTO">@d.NOMBRE</option>
                    }
                }
            </select>

intento esto sin exito:

  var cod = document.getElementById("DEPARTAMENTOV").value;
        document.datos.DEPARTAMENTO.val(cod);

solución

Entiendo tu problema, podrías probar lo siguiente:

Tienes un check en tu vista “Denunciante”, quieres jalar los valores de “Victima” y que los valores en tu Select de victima se carguen igual en denunciante, solo debes hacer lo siguiente:

Tu Select en Victima:

<label>10. Departamento:<b style="color:red">*</b></label>
        <select class="form-control" id="DEPARTAMENTOV" name="DEPARTAMENTO" onchange="MunicipioDenunciante(this.value);" required>
            <option value="99">Ignorado</option>
            @foreach (var d in ValorDepto)
            {
                if (d.COD_DEPARTAMENTO == DEPARTAMENTO)
                {
                    <option value="@d.COD_DEPARTAMENTO" selected id="DEPVALOR">@d.NOMBRE</option>
                }
                else
                {
                    <option value="@d.COD_DEPARTAMENTO">@d.NOMBRE</option>
                }
            }
        </select>

Quieres que se refleje en la vista Denunciante, que es una copia exacta, unicamente que diferencias los ´id´:

<label>10. Departamento:<b style="color:red">*</b></label>
        <select class="form-control" id="DEPARTAMENTOD" name="DEPARTAMENTO" onchange="MunicipioDenunciante(this.value);" required>
            <option value="99">Ignorado</option>
            @foreach (var d in ValorDepto)
            {
                if (d.COD_DEPARTAMENTO == DEPARTAMENTO)
                {
                    <option value="@d.COD_DEPARTAMENTO" selected id="DEPVALOR">@d.NOMBRE</option>
                }
                else
                {
                    <option value="@d.COD_DEPARTAMENTO">@d.NOMBRE</option>
                }
            }
        </select>

Por lo que podemos hacer es obtener el valor de DEPARTAMENTOV –> Victima, y cargarlo en DEPARTAMENTOD por medio de tu evento javascript, el cual no lo estas compartiendo en el codigo, y creo que allí esta la magia del dinamisno que quieres mostrar, si entiendes como pasar los valores a un simple input solo te hace falta pasarlo a un Select y actualizarlo.

var cod = document.getElementById("MUNICIPIOV").value;//Recibe el ID en la vista victima
document.datos.DEPARTAMENTO.value = cod;          
var combo = document.getElementById("MUNICIPIOV");
var valor = combo .options[combo .selectedIndex].text;//obtiene la descripcion            
$(".muniDenunciante").append('<option value="' + cod + '" selected>' + valor + '</option>').trigger("chosen:updated");//Agrega el valor, que supongo se carga vacio, puedes agregar el atributo 'selected' para hacer la comparación, utiliza **trigger("chosen:updated")** para actualizar el Select
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *