Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

Practica texto y boton

Hola buenos dias, estoy practicando para que al apretar un boton, me salte un alert con el resultado de la suma entre el numero que puse en el campo y uno random pero cuando apreto el boton, no se suman los numeros y me aparece la leyenda El numero [object HTMLInputElement] y donde dice object quiero que aparezca el numero ingresado por el usuario. Como lo soluciono y porque pasa eso? Saludos

<meta charset="UTF-8">
<input/>
<button>Enviar</button>


<script>
    //el usuario tiene que poner en 1 boton un numero y se le devolvera el resultado de ese numero sumado con uno random  siempre y cuando el numero ingresado sea menor o igual al random
    var random=Math.round(Math.random()*10);
    var input1=document.querySelector("input");
    input1.focus();

    function operaciones(){
        if(parseInt(input1.value)<=random){
            var suma=input1+random;
            alert("El resultado de la suma es: "+suma)
        }else{
            alert("El numero "+input1+"es mayor a "+random)
        }
        input1.value="";
        input1.focus();
    }

    var button=document.querySelector("button");
    button.onclick=operaciones;

</script>
5 respuestas

Martina corrige acá:

 var suma=parseInt(input1.value)+random; // input1 solo es el elemento HTML, luego el value debes parsearlo ya que si no lo que hace
                                         // JavaScript es una concatenación

alert("El numero "+input1.value+" es mayor a "+random)

Espero que esta sea tú solución

Gracias Jose, pero cuando realizo la suma esta mal hecha (el numero random lo estableci hasta 10 y como condicion puse que si el numero ingresado es menor o igual al random que haga la suma, sino que no la haga y el resultado que me dio abajo es imposible teniendo en cuenta la condicion), no se porque. Cuando implemente la solucion, se soluciono y muestra el numero Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Eso seguramente es una concatenación: random fue 4 y "4"+4 se concatena en "44". Revisa nuevamente:

var suma=parseInt(input1.value)+random; // observa los paréntesis y que no tengas así. var suma=parseInt(input1.value+random);

Cuando pongo un numero, me aparece "El resultado de la suma es "y no me los suma

<script>
    //el usuario tiene que poner en 1 boton un numero y se le devolvera el resultado de ese numero sumado y restado con uno random
    var random=Math.round(Math.random()*10);
    var input1=document.querySelector("input");
    input1.focus();

    function operaciones(){
        if(parseInt(input1.value)<=random){
            var suma=(input1.value)+random;
            alert("El resultado de la suma es: ",suma)
        }else{
            alert("El numero "+input1.value+" es mayor a "+random)
        }
        input1.value="";
        input1.focus();
    }

    var button=document.querySelector("button");
    button.onclick=operaciones;

</script>

Algunas consideraciones Martina:

  1. Hace tres días te indique que no colocaras así var suma=(input1.value)+random; ya que esto produce una concatenación
  2. Que coloque así: var suma=parseInt(input1.value)+random;
  3. alert solo muestra un resultado por lo que alert("El resultado de la suma es: ",suma) solo mostrara El resultado de la suma es: ya que lo que esta después de la , es otra cosa.
  4. Para que muestre la suma debes colocar así: alert("El resultado de la suma es: " + suma) acá concatena y muestra todo.