El elemento Javascript es nulo

Soy un principiante en javascrit, y estoy tratando de obtener un resultado global de la forma

el botón de radio

 

y el javascript en la otra página

  function show(){ var supporter = document.getElementById('supporter'); if (supporter.value == "yes") { alert("it works") } } show();  

y sigo recibiendo un error, esto: el soporte es nulo

¿Puede alguien decirme lo que me falta?

Dependerá de cuándo se ejecute el script. El navegador ejecuta Javascript, tal como se encuentra, lo que significa que si su fragmento de código existe en la página anterior al elemento HTML, entonces, en ese momento, el elemento HTML aún no existe.

Una solución sería poner el Javascript al final de la página, o mover ese código en el controlador document.onload .

 document.onload = function () { show(); }; 

Es probable que esté ejecutando ese script antes de que se scope el elemento en su código, por lo que no existe cuando intenta acceder a él. Asegúrate de que la secuencia de comandos aparezca después de la entrada (o envuélvela en un controlador de eventos de carga de documentos para que no se ejecute hasta que la página se haya cargado por completo)

Ponga esto después o debajo del elemento de entrada. El elemento de entrada aún no se cargó y se ejecuta el javascript, por lo que se obtiene un valor nulo.

Solución 1:

        

Solución 2:

O si prefiere colocar scripts en el encabezado de html, ejecute la función solo cuando la página esté cargada.

         

En su página javascript separada:

 function show() { var supporter = document.getElementById('supporter'); if (supporter.value == "yes") { alert("it works"); } } //When page loaded document.onload = function(){ show(); }; 

Nota: no tiene que poner en su archivo JavaScript.