Foros del Web » Programando para Internet » Javascript »

HTML + JS Puro no funciona

Estas en el tema de HTML + JS Puro no funciona en el foro de Javascript en Foros del Web. Buenos días, recurro a ustedes debido a que no se que es lo que puede estar fallando en mi código. Lo que intento hacer se ...
  #1 (permalink)  
Antiguo 05/07/2016, 21:44
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 10 meses
Puntos: 0
HTML + JS Puro no funciona

Buenos días, recurro a ustedes debido a que no se que es lo que puede estar fallando en mi código. Lo que intento hacer se puede hacer en el Framewrok jQuery, VBasic, C++ y C#. El tema es que lo tengo que hacer sí o sí en JavaScript puro y la verdad no doy con la solución ya que no me da ningún error en la consola (Lo que puede significar que hay algo del HTML que JavaScript no está tomando).

Acá les dejo el código de la trivia game para que se den una idea que puede estar pasando. Un saludo!

index.html

Código HTML:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title></title>
	<link rel="stylesheet" href="">
	<script src="game.js"></script>
</head>
<body>
    	<section>
    		<article>“Pregunta 1”
    		  <ul class="ans">
			    <li><label><input name="q1" type="radio" value="0" >Opción 1</label></li>
			    <li><label><input name="q1" type="radio" value="1" >Opción 2</label></li>
			  </ul>
    		</article>
    	</section>
</body>
</html> 
game.js

Código:
document.addEventListener('DOMContentLoaded', function () {

  var x = document.getElementsByName("q1");

  if (x.checked == true) {
    alert("hola");
  }

});
  #2 (permalink)  
Antiguo 06/07/2016, 01:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: HTML + JS Puro no funciona

Hola:

Tu variable x referencia a un array, por lo que deberías consultar sus dos índices...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 06/07/2016, 01:27
 
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años
Puntos: 10
Respuesta: HTML + JS Puro no funciona

Buenas:

Código Javascript:
Ver original
  1. document.getElementsByName("q1")

Te devuelve un array con los input que tengan el name="q1", por lo que lo correcto sería:

Código Javascript:
Ver original
  1. var x = document.getElementsByName("q1");
  2.  
  3. for(var i = 0, len = x.length; i < len; i++){
  4.     if (x[i].checked == true) {
  5.         alert("hola input " + i);
  6.     }
  7. }
  #4 (permalink)  
Antiguo 06/07/2016, 09:32
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: HTML + JS Puro no funciona

Hice lo que me dijeron que si bien es correcto, me sigue sin funcionar. Acá les muestro el código actualizado.

Código HTML:
 <li><label><input name="q1" value="0" type="radio" onclick="send();" >resp1</label></li>
			    <li><label><input name="q1" value="1" type="radio" onclick="send();" >resp2</label></li> 
Código:
document.addEventListener('DOMContentLoaded', function () {

 var x = document.getElementsByName("q1");
    var answer;
    for (var i = 0; i < x.length; i++) {
        if (x[i].checked === true) {
            answer = x[i].value;
            break
        }
    }

  if (answer == 0) {
        console.log("true");
    } else if (answer ==1){
        console.log("false");
    }

});
Me tira un send(); is not defined
  #5 (permalink)  
Antiguo 06/07/2016, 10:00
 
Fecha de Ingreso: junio-2008
Mensajes: 43
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: HTML + JS Puro no funciona

Solucionado, lo que hice fue borrar el Listener, ahora lo que quiero hacer es que cuando hagas click en una pantalla en este caso un name, este pase al otro y se oculte el anterior por lo menos cinco veces, no se si tendré que usar un array o asignarle varios valores al getElementsByName para después usar un if else. Que se les ocurre? Acá les dejo mi JS. Saludos.

Código Javascript:
Ver original
  1. function answer(){
  2.  
  3.     var x = document.getElementsByName("q1", "q2", "q3", "q4", "q5");
  4.     var answer;
  5.     for (var i = 0; i < x.length; i++) {
  6.         if (x[i].checked === true) {
  7.             answer = x[i].value;
  8.             break
  9.         }
  10.     }
  11.  
  12.  
  13.  
  14.     if (answer == 0) {
  15.         var a = document.getElementsByTagName("article")[0];
  16.         a.innerHTML = "CORRECTO";
  17.     }else{
  18.         var a = document.getElementsByTagName("article")[0];
  19.         a.innerHTML = "INCORRECTO";
  20.     }
  21.  
  22.  }
  23.  
  24.  function send(){
  25.    
  26.     if (x == 0){
  27.         document.getElementById("q1").style.display = "none";
  28.         document.getElementById("q2").style.display = "block";
  29.     }
  30.     if (x == 1){
  31.         document.getElementById("q2").style.display = "none";
  32.         document.getElementById("q3").style.display = "block";
  33.     }
  34.  }

Última edición por HmrO; 06/07/2016 a las 12:17

Etiquetas: javascript+html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.