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

[Sugerencia] Una forma distinta

Si alguien quiere intentarlo con otro tipo de input, mucho más parecido a lo que van a encontrar en la realidad, les dejo mi programa que usa cajas de texto:

IMC Cual es su peso (en kilogramos)?
    <label for="">Cual es su estatura (en centimetros)?</label>
    <input type="text" id="estatura">

    <input type="button" onclick="Generar();" value="Generar">

</fieldset>

</body>
<script>
    function Generar() {
        //var kg = document.getElementById('peso').value;
        //parseFloat(kg);
        //var alt = document.getElementById('estatura').value;
       // parseFloat(alt);

        let kg= parseInt(document.querySelector("#kg").value);
        let estatura= parseInt(document.querySelector("#estatura").value);

        let IMC = (kg/((estatura*estatura)/10000)).toFixed(2);

        alert("tu indice de masa corporal es " + IMC);

    }



</script>

Posdata: Me costó mas de lo que quisiera admitir el lograr obtener un input de un form.

3 respuestas

Excelente, podés probar también realizar un formulario completo, y que el input del final sea de tipo submit, y realizar toda la funcionalidad al escuchar el evento submit al agregar un .addEventListener. Digo que es otra forma para no colocar el onClick dentro del botón. Recuerda que por convención las funciones se declaran con minúscula, a menos que sean dos palabras y en ese caso se usa la convención upperCase.

Dejo el código de lo que te decía anteriormente.

<form id=formulario>
    <input type="text" "value="Agrega tu peso" id="kg">
    <input type="text" "value="Agrega tu estatura" id="estatura">
    <input type="submit" " value="Calcular">
</form>

<script>
     const formulario = document.querySelector(#formulario)

    formulario.addEventListener('submit', generar)

    function generar () {

        let kg= parseInt(document.querySelector("#kg").value);
        let estatura= parseInt(document.querySelector("#estatura").value);
        let IMC = (kg/((estatura*estatura)/10000)).toFixed(2);

        alert("tu indice de masa corporal es " + IMC);
    }

</script>

Saludos!!

La opción dispuesta por Nicolás Rolon está muy buena, aunque hay unos pequeños errores:

En los input del formulario hay unas comillas de mas antes de los value.

En mi opinión no debería poner el atributo value ya que le esta asignando un valor al input en lugar de esto creo que debería ir un placeholder.

En la linea donde esta document.querySelector(#formulario) hacen falta las comillas en ("#formulario").

Y por ultimo al declarar la variable de estatura debe ir un parseFloat en lugar de parseInt ya que esta no permitirá guardar un numero decimal lo cual variara el calculo.

Pero muy interesante esa forma de aplicar ese formulario, saludos.

Muchas gracias por las correcciones. Escribí el código directamente acá en el foro sin chequearlo en un editor, pero buenisimo si se entendió lo propuesto. Saludos!