Estoy perplejo en el formulario HTML trabajando en por qué solo se envía a la base de datos si el correo electrónico NO es válido. Me gustaría que solo funcione SI el correo electrónico es válido. Si es un correo electrónico válido, no termina en la base de datos. Debe haber algo que me estoy perdiendo. Soy nuevo en HTML y JS. Cualquier sugerencia ayudará. Gracias
<form class="contact-form"> <div class="col-md-6 col-sm-6 col-xs-12"> <input type="text" id="name" name="name" placeholder="Name"> </div> <div class="col-md-6 col-sm-6 col-xs-12"> <input type="email" id="email" name="email" placeholder="E-mail"> </div> <div class="col-md-12"> <textarea name="message" id="message" placeholder="Message"></textarea> </div> <div class="col-md-12"> <div class="center-holder"> <button id="submit_msg" type="submit">Send Message</button> </div> </div> </form> <!-- Form End -->Aquí está el archivo JS
var firebaseConfig = { apiKey: "xxxxx", authDomain: "https://xxxxx", databaseURL: "https:/xxxxx.firebaseio.com/", projectId: "xxxxx", storageBucket: "xxxxx", messagingSenderId: "xxxxx" }; firebase.initializeApp(firebaseConfig); var push_to_firebase = function(data){ var db = firebase.firestore(); db.collection("messages").add({ name: data["name"], email: data["email"], message: data["msg"], timestamp: Date.now() }) } var contact_submit = function(){ var name = document.getElementById("name"); var email = document.getElementById("email"); var msg = document.getElementById("message"); var data = { "name": name.value, "email": email.value, "msg": msg.value } push_to_firebase(data); } document.getElementById("submit_msg").addEventListener("click", contact_submit); })();puede validar el correo electrónico primero antes de guardarlo en firebase
const validateEmail = (email) => { return String(email) .toLowerCase() .match( /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ ); }; // run this function first, if it returns true then continue to save in database