Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: SrTrp en 24 Julio 2021, 06:47 am



Título: Error Cannot set property 'disabled' of null
Publicado por: SrTrp en 24 Julio 2021, 06:47 am
Hola que tal estoy intentando llamar una función en JS pero me da ese error
Código:
Cannot set property 'disabled' of null
Este es mi codigo html
Código
  1. <div style="display: table-cell;width: 50%;">
  2.                                <button  id="btn-one" style="background: #036586;border-style: none;border-radius: 10px;padding: 10px;width: 100%;font-size: 16px;" onclick="tp_cits(1);">Tipo 1</button>
  3.                            </div>
  4.                            <div style="display: table-cell;width: 50%;">
  5.                                <button  id="btn_two" style="background: #036586;border-style: none;border-radius: 10px;padding: 10px;width: 100%;margin-left: 10px;font-size: 16px;" onclick="tp_cits(0);">Tipo 2</button>
  6.                            </div>
  7.  
y Aquí esta mi JS
Código
  1. function tp_cits(tipo){
  2.  if(tipo == 0){
  3. document.getElementById("btn-two").disabled = true;
  4.    document.getElementById("btn-one").disabled = false;
  5.    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>2000";
  6.  
  7.  }else if(tipo == 1){
  8.    document.getElementById("btn-two").disabled = false;
  9.    document.getElementById("btn-one").disabled = true;
  10.    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>1000";
  11.  
  12.  }
  13. }
  14.  
Lo que quiero es que un botón se inhabilite cuando seleccione el otro, leí que esto puede ser por que aun no carga la pagina probé solucionar esto con este código:
Código
  1. $(document).ready(function(){
  2. function tp_cits(tipo){
  3.  if(tipo == 0){
  4. document.getElementById("btn-two").disabled = true;
  5.    document.getElementById("btn-one").disabled = false;
  6.    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>2000";
  7.  }else if(tipo == 1){
  8.    document.getElementById("btn-two").disabled = false;
  9.    document.getElementById("btn-one").disabled = true;
  10.    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>1000";
  11.  
  12.  }
  13. }
  14. }
  15. });
  16.  
Pero con eso me da este error :
Código:
tp_cits is not defined


Título: Re: Error Cannot set property 'disabled' of null
Publicado por: 3n31ch en 24 Julio 2021, 07:15 am
El javascript está cargado, de eso no te preocupes. Tu problema es mas simple, la id de tu botón es "btn_two" no "btn-two". El error Cannot set property 'disabled' of null, es porque estás intentando cambiar la propiedad de algo que no existe (#btn-two no existe y por tanto, getElementById regresa null, null.disabled no existe).
Suerte!

(Por cierto, no recomiendo seguir usando jquery, javascript ya proporciona todas las herramientas que antiguamente solo entregaba jquery).


Título: Re: Error Cannot set property 'disabled' of null
Publicado por: SrTrp en 24 Julio 2021, 07:39 am
Muchas muchas gracias si era eso, que tonto fui con razón siempre me marcaba error en el mismo boton
El javascript está cargado, de eso no te preocupes. Tu problema es mas simple, la id de tu botón es "btn_two" no "btn-two". El error Cannot set property 'disabled' of null, es porque estás intentando cambiar la propiedad de algo que no existe (#btn-two no existe y por tanto, getElementById regresa null, null.disabled no existe).
Suerte!

(Por cierto, no recomiendo seguir usando jquery, javascript ya proporciona todas las herramientas que antiguamente solo entregaba jquery).