Foros del Web » Programando para Internet » Javascript »

checkbox habilita text

Estas en el tema de checkbox habilita text en el foro de Javascript en Foros del Web. Buen dia. Necesito hacer que un input de tipo text se active al darle click a un checkbox, el input de text debe de estar ...
  #1 (permalink)  
Antiguo 07/11/2019, 09:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 126
Antigüedad: 9 años, 10 meses
Puntos: 0
checkbox habilita text

Buen dia. Necesito hacer que un input de tipo text se active al darle click a un checkbox, el input de text debe de estar inavilitado al entrar a la pagina y el checkbox chequeado. Pero lo que he hecho no funciona, pongo el codigo a ver si alguien me puede ayudar a encontrar mi error por favor
Código Javascript:
Ver original
  1. <script>
  2. function costo(){
  3. if(document.form1.factura.checked){
  4. document.form1.costo.disabled=true;
  5. }
  6. else{
  7. document.form1.costo.disabled=false;
  8. }
  9. }
  10. </script>
Código HTML:
Ver original
  1. <input name="costo" type="text" disabled id="costo" size="3"  /><input type="checkbox" name="factura" checked onChange="javascript:costo()">
Espero haber sido claro, muchas gracias por su atencion.
  #2 (permalink)  
Antiguo 07/11/2019, 09:43
 
Fecha de Ingreso: abril-2011
Mensajes: 40
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: checkbox habilita text

Prueba:

Código HTML:
Ver original
  1. function costo(){
  2.   if(document.getElementById("costo").disabled){ // si esta deshabilitado
  3.     document.getElementById("costo").disabled = false; // habilitar
  4.   }else{
  5.     document.getElementById("costo").disabled = true; // deshabilitar
  6.   }
  7. }
  8.  
  9. <input name="costo" type="text" disabled id="costo" size="3"  /><input type="checkbox" name="factura" checked onChange="costo()">

Notas:

1) El protocolo javascript: solamente se añade en el atributo href de los enlaces para ejecutar JS, nunca en atributos onclick, onfocus etc.

2) Te recomiendo dejar de usar document.forms y usar siempre document.getElementById, que es la forma más clara de obtener elementos HTML. Así no te confundirás nunca.


Edit:

Siguiendo la lógica de tu código sería más bien así:

Código HTML:
Ver original
  1. function costo(){
  2.   if(document.getElementById("micheck").checked){ // si esta marcado
  3.     document.getElementById("costo").disabled = true; // deshabilitar
  4.   }else{
  5.     document.getElementById("costo").disabled = false; // habilitar
  6.   }
  7. }
  8.  
  9. <input name="costo" type="text" disabled id="costo" size="3"  /><input type="checkbox" id="micheck" name="factura" checked onChange="costo()">

Pero ambas formas son válidas.

Última edición por prueba230683; 07/11/2019 a las 10:04
  #3 (permalink)  
Antiguo 07/11/2019, 10:30
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.543
Antigüedad: 11 años, 8 meses
Puntos: 1082
Respuesta: checkbox habilita text

Hoy ando de buenas, te paso un pequeño truco con CSS y otro con JS
https://jsfiddle.net/arturogallegos/c5471vy8/2/

[JSFIDDLE]arturogallegos/c5471vy8/2[/JSFIDDLE]



La zona horaria es GMT -6. Ahora son las 21:56.