Estoy atascado tratando de generar el correo electrónico en lugar de números relacionados con la cantidad de palabras ingresadas
var output2 = "Email: " + at; está contando la cantidad de letras que se ingresó.
Estoy tratando de averiguar cómo está contando la cantidad de letras y por qué no está enviando el correo electrónico en su lugar.
function myFunction() { var uname = document.getElementById("uname").value; var age = document.getElementById("age").value; var at = document.getElementById("email").value.indexOf("@"); submitOk = "true"; if (uname.length > 16) { alert("Characters have exceeded specified amount"); submitOk = "false"; } if (age < 13 || age > 19) { alert("Numbers must be between 13 and 19"); submitOk = "false"; } if (at == -1) { alert("not a valid E-mail"); } if (submitOk == "false") {} if (submitOk == "true") {} var output = "Name: " + uname; var output1 = "Age: " + age; var output2 = "Email: " + at; document.getElementById("output").innerHTML = output; document.getElementById("output1").innerHTML = output1; document.getElementById("output2").innerHTML = output2; } <form onsubmit="return myFunction()"> Name : <br><input type="text" id="uname" size="30" placeholder="Maximum of 16 Characters"><br> Age : <br><input type="number" id="age" size="30" placeholder="From 13 to 19 only"><br> E-mail : <br><input type="text" id="email" size="30" placeholder="Examplename@mail.com"><br> <br> <input type="submit" onclick="myFunction();return false" value="Submit"> </form> <table class="center"> <tr> <td> <div id="output"></div> </td> </tr> <tr> <td> <div id="output1"></div> </td> </tr> <tr> <td> <div id="output2"></div> </td> </tr> </table>Parece que se está utilizando at verificar que el correo electrónico tiene un símbolo @ , no necesariamente devuelve el valor puro como se ve aquí donde se calcula:
var at = document.getElementById("email").value.indexOf("@"); indexOf("@") devolverá la posición del primer símbolo si se encuentra, o -1 si no se encuentra.
Si solo desea la dirección de correo electrónico, puede dividirla en dos declaraciones:
var email = document.getElementById("email").value; var at = email.indexOf("@");