2009-11-23 19 views
17

Parece que no puedo hacer que removeAttr funcione, estoy usando el ejemplo que vi en el sitio de jQuery. Básicamente, onclick agrego el atributo para deshabilitar un campo (que funciona bien) pero cuando el usuario vuelve a hacer clic debería habilitar el campo en cuestión. Usé alertas para asegurarme de que se está disparando el bloque else, así que sé que no es eso.jQuery eliminar el atributo

Código:

$('#WindowOpen').click(function (event) { 
    event.preventDefault(); 
    $('#forgot_pw').slideToggle(600); 

    if('#forgot_pw') { 
    $('#login_uname, #login_pass').attr('disabled','disabled'); 
    } else { 
    $('#login_uname, #login_pass').removeAttr('disabled'); 
    } 
}); 

Gracias.

+1

if ('# forgot_pw') siempre se ejecutará. Supongo que esto es un error tipográfico – mtyaka

+2

Para referencia futura, jQuery recomienda usar el método '.prop()' (http://api.jquery.com/prop/) al obtener y configurar las propiedades de entrada como deshabilitadas. Es más compatible con los navegadores cruzados dependiendo de la versión de jQuery que use y del navegador con el que naveguen sus usuarios. – jasonmerino

+1

posible duplicado de [Quitar el atributo deshabilitado utilizando JQuery?] (Http://stackoverflow.com/questions/13626517/remove-disabled-attribute-using-jquery) – user2381114

Respuesta

17

Todo bien utilizado este:

$('#WindowOpen').toggle(
    function() 
    { 
     $('#login_uname, #login_pass').attr("disabled","disabled");  
    }, 
    function() 
    { 
     $('#login_uname, #login_pass').removeAttr("disabled");  
    }); 
5

Su problema es que la siguiente línea de código siempre se evaluará como verdadera.

if('#forgot_pw') 

intente reemplazar con

if($('#forgot_pw').attr('disabled')) 
+0

Mismo problema, lo consigo para deshabilitar pero no para volver a habilitarlo. – Tarek

4
$('#forgot_pw').attr('disabled', false); 

debe trabajar para usted.

Cuestiones relacionadas