none
habilitar y deshabilitar textbox con un boton

    Pregunta

  • estoy intentando deshabilitar unos textbox al pulsar un boton, para ello estoy utilizando javascript(no se si hay otra forma mas sencilla en mvc) mi script es asi:

    <script type="text/javascript">
            var Activado = false;
            $("#NuevaIncidencia").click(function () {
                if (Activado == false) {
                    $("#<%=Descripcion.ClientID%>").attr('disabled', false);
                    Activado = true;
                }
                else if (Activado = true) {
                    $("#<%=Descripcion.ClientID%>").attr('disabled', true);
                    Activado = false;
                }
    
            });
        </script>

    me da error en esta parte :

    $("#<%=Descripcion.ClientID%>").attr('disabled', false) 

    ¿como se referencia a mi textbox?

     esta definido asi:

    <input id="Descripcion" name="Descripcion" type="text" style="width:700px;height:16px">

    miércoles, 16 de mayo de 2018 11:26

Respuestas

  • Hola pit29,

    Según tus hilos anteriores estabas utilizando 'Razor' en MVC. El código mostrado funcionaría en Aspx, ya que ahí puedes obtener el ClientID.

    Por lo que bastaría con utilizarlo de la siguiente manera:

    <script type="text/javascript">
    
        var Activado = false;
    
        $("#NuevaIncidencia").click(function (e) {
            e.preventDefault();
    
            //Si la variable 'Activado' es true
            if (Activado) 
                $("input#Descripcion").attr('disabled', true);
            else
                $("input#Descripcion").removeAttr('disabled');
    
            //Cambiamos el valor por el opuesto
            Activado = !Activado;
        });
    </script>

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta pit29 miércoles, 16 de mayo de 2018 22:18
    miércoles, 16 de mayo de 2018 14:23

Todas las respuestas

  • Hola pit29,

    Según tus hilos anteriores estabas utilizando 'Razor' en MVC. El código mostrado funcionaría en Aspx, ya que ahí puedes obtener el ClientID.

    Por lo que bastaría con utilizarlo de la siguiente manera:

    <script type="text/javascript">
    
        var Activado = false;
    
        $("#NuevaIncidencia").click(function (e) {
            e.preventDefault();
    
            //Si la variable 'Activado' es true
            if (Activado) 
                $("input#Descripcion").attr('disabled', true);
            else
                $("input#Descripcion").removeAttr('disabled');
    
            //Cambiamos el valor por el opuesto
            Activado = !Activado;
        });
    </script>

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta pit29 miércoles, 16 de mayo de 2018 22:18
    miércoles, 16 de mayo de 2018 14:23
  • En jQuery's modernos, para disabled utilizamos prop(), no attr().  La ventaja es que prop() devuelve un Booleano para cuando se usa para leer, y por lo tanto le sirve para saber qué hacer y ya no necesita la variable global Activado.

    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    miércoles, 16 de mayo de 2018 21:01
  • muchas gracias, lo tendre en cuenta Jose
    miércoles, 16 de mayo de 2018 22:18
  • tengo un problema con esa solucion, ahora si inhabilito los textbox pero al presionar el boton que captura la accion el boton pulsado no lo capturo en el controller, por ejemplo, quiero que al presionar guardar los vuelva a inhabilitar pero tambien quiero que ejecute codigo del controller, le paso el parametroo boton, pero si lo captura java controller no se entera, ¿como podria hacerle llegar el parametro boton?
    • Editado pit29 jueves, 17 de mayo de 2018 7:29
    jueves, 17 de mayo de 2018 7:27