Test Foro de elhacker.net SMF 2.1

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