Saltar al contenido principal

 none
Recuperar el valor de un desplegable cargando el desplegable desde un enumerado RRS feed

  • Pregunta

  • Tengo este código HTML para crear un combobox a partir de un enumerado

    Enumerado

                public enum tipoFormasPago
            {
                [Display(Name = "Efectivo")]
                E,
                [Display(Name = "Tarjeta")]
                T,
                [Display(Name = "Paypal")]
                P
            }

    HTML

                                    <td>Forma de pago</td>
                                    <td>
                                        @Html.DropDownList("formaDePago", EnumHelper.GetSelectList(typeof(testweb.Classes.EnumUtils.tipoFormasPago)),
                                                        "Selecciona", new { @class = "formaDePago form-control" })
                                        <span class="error">Forma de pago obligatoria</span>
                                    </td>

    Si miro el HTML con firebug veo lo siguiente

        <select class="formaDePago form-control" id="formaDePago" name="formaDePago">
        	<option value="">Selecciona</option>
    
        	<option value="0">Efectivo</option>
    
        	<option value="1">Tarjeta</option>
    
        	<option value="2">Paypal</option>
    
        </select>

    Y desde el javascript quiero recoger el valor del combobox para ello he probado de estas maneras pero siempre recibo "0" además me gustaria que los valores se completaran con el enumerado que tengo creado.

        var var1 = $('#formaDePago').find('option:selected').val();
        var var2 = $('select[name=formaDePago]').val();

    Gracias,

    viernes, 26 de mayo de 2017 11:37

Todas las respuestas

  • Saludos,

    Sí utilizas jquery con hacer referencia al id de tu DropDownList "formaDePago" y sacar el valor seleccionado puedes hacer esto:

    var valSelection = $('#formaDePago').val();


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    viernes, 26 de mayo de 2017 13:50
  • Saludos,

    Sí utilizas jquery con hacer referencia al id de tu DropDownList "formaDePago" y sacar el valor seleccionado puedes hacer esto:

    var valSelection = $('#formaDePago').val();


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    Gracias ahora lo ví

    Ahora solo me falta averiguar porque el desplegable que se me crea en HTML me pone los valores de 0 ,1 y 2  y no me pone los valores de E , T y P como tengo definidos en el enumenador.

    • Editado ilernet viernes, 26 de mayo de 2017 14:50
    viernes, 26 de mayo de 2017 14:49
  • Saludos,

    Como los valores del Enum son stings debes de introducirlos entre comillas "E", "T", "P".


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    viernes, 26 de mayo de 2017 15:21
  • Con este ejemlo, obtendras los valores en "String" y tendras el valor "Seleccione" como default

       <select class="formaDePago form-control" id="formaDePago" name="formaDePago">
        	<option value="0" selected>Seleccione</option>
    
        	<option value="Efectivo">Efectivo</option>
    
        	<option value="Tarjeta">Tarjeta</option>
    
        	<option value="Paypal">Paypal</option>
    
        </select>

    y como lo comento J.Joaquin

    Con Jquery puedes obtener el valor 

    $('formaDePago').val()
    

    Saludos..


    viernes, 26 de mayo de 2017 15:28
  • Saludos,

    Como los valores del Enum son stings debes de introducirlos entre comillas "E", "T", "P".


    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    Si pongo este código me da error

        public enum tipoFormasPago
            {
                [Display(Name = "Efectivo")]
                "E",
                [Display(Name = "Tarjeta")]
                "T",
                [Display(Name = "Paypal")]
                "P"
            }

    Error    5    El token '"E"' no es válido en una clase, un struct o una declaración de miembro de interfaz  

    sábado, 27 de mayo de 2017 9:46
  • Con este ejemlo, obtendras los valores en "String" y tendras el valor "Seleccione" como default

       <select class="formaDePago form-control" id="formaDePago" name="formaDePago">
        	<option value="0" selected>Seleccione</option>
    
        	<option value="Efectivo">Efectivo</option>
    
        	<option value="Tarjeta">Tarjeta</option>
    
        	<option value="Paypal">Paypal</option>
    
        </select>

    y como lo comento J.Joaquin

    Con Jquery puedes obtener el valor 

    $('formaDePago').val()

    Saludos..


    Quiero hacerlo desde un enumerado porque imaginaros que el dia de mañana añado un nuevo item , tendré que buscar todos los sitios donde tengo declarado este desplegable  y eso no es nada práctico.


    Gracias,

    sábado, 27 de mayo de 2017 9:47
  • Pudiste resolver tu problema o aún no?

    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    miércoles, 31 de mayo de 2017 14:39
  • Pudiste resolver tu problema o aún no?

    Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"

    Blog
    J.Joaquin

    No he podido...sigo buscando una solución al problema pero de momento no encuentro nada.

    Gracias,

    martes, 6 de junio de 2017 16:19
  • Con esta línea de codigo, mas unas que agregue, me salvaste la vida. Genioooo.
    • Propuesto como respuesta Juan Cruz INF viernes, 1 de noviembre de 2019 3:09
    viernes, 1 de noviembre de 2019 3:09