Error Cannot set property 'disabled' of null

Iniciado por SrTrp, 24 Julio 2021, 06:47 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Hola que tal estoy intentando llamar una función en JS pero me da ese error Cannot set property 'disabled' of null
Este es mi codigo html
Código (html4strict) [Seleccionar]

<div style="display: table-cell;width: 50%;">
                                <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>
                            </div>
                            <div style="display: table-cell;width: 50%;">
                                <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>
                            </div>

y Aquí esta mi JS
Código (javascript) [Seleccionar]

function tp_cits(tipo){
  if(tipo == 0){
document.getElementById("btn-two").disabled = true;
    document.getElementById("btn-one").disabled = false;
    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>2000";
   
  }else if(tipo == 1){
    document.getElementById("btn-two").disabled = false;
    document.getElementById("btn-one").disabled = true;
    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>1000";
   
  }
}

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 (javascript) [Seleccionar]

$(document).ready(function(){
function tp_cits(tipo){
  if(tipo == 0){
document.getElementById("btn-two").disabled = true;
    document.getElementById("btn-one").disabled = false;
    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>2000";
  }else if(tipo == 1){
    document.getElementById("btn-two").disabled = false;
    document.getElementById("btn-one").disabled = true;
    document.getElementById("preciotxt").innerHTML="<strong>Precio: </strong>1000";
   
  }
}
}
});

Pero con eso me da este error : tp_cits is not defined

3n31ch

#1
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).

SrTrp

Muchas muchas gracias si era eso, que tonto fui con razón siempre me marcaba error en el mismo boton
Cita de: 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).