/ / Desmarque check_box_tag para habilitar el área de texto después de deshabilitarlo - jquery

Desmarque check_box_tag para habilitar el área de texto después de deshabilitarlo - jquery

Estoy usando Jquery para deshabilitar y volver a habilitar un área de texto dependiendo de si una casilla de verificación está marcada o no.

Puedo deshabilitar el cuadro de área de texto cuando la casilla de verificación está marcada, pero no puedo habilitarla cuando la casilla de verificación no está marcada. Aquí está mi script actual de Jquery:

$("#business_closed").change(function(){
value = $(this).val();
console.log(value);

if(value){
$("#open_hours").attr("disabled", "disabled");
}
else{
$("#open_hours").removeAttr("disabled");
}
return false;
});

Residencia en console.log(value);Mi valor siempre es 1, incluso cuando no estoy marcando la casilla de verificación. ¿Cómo obtengo el valor de la casilla de verificación (esté o no marcada)?

Gracias.

Respuestas

1 para la respuesta № 1

Código modificado: debe utilizar propiedades marcadas

$("#business_closed").change(function(){

console.log(value);

if(this.checked){
$("#open_hours").attr("disabled", true);
}
else{
$("#open_hours").attr("disabled", false);
}
return false;
});

1 para la respuesta № 2

Hay algún problema asociado con el uso .attr() Con versión jQuery <1.6.

Ya que le da a la propiedad DefaultCheck en el momento de la representación de la página. Por lo tanto, es una buena práctica usar .prop() en lugar

if(value){
$("#open_hours").prop("disabled", true);
}
else{
$("#open_hours").prop("disabled", false);
}