Если форма пуста, она не отправляет < /p>
< /blockquote>
Если форма правильно заполнена. Правильно сформировано, имя или фамилия пустые и термины, не проверенные), оно не отправляет , но , если поля «nombre» и «apellido1» заполнены, по крайней мере, одним персонажем, он посылает игнорирующие все другие ошибки (я пробовал несколько комбинаций), и я не знаю, почему или что я делаю неправильно
Styles) < /p>
(для разъяснения, испанские номера телефонов начинаются с 6 или 7, а затем 8 чисел, DNI - 8 чисел и одна буква, проверьте резервную связь) < /p>
Код: Выделить всё
Formulario de registro
Los campos marcados con asterisco(*) son obligatorios
Nombre y apellidos
Nombre*
Primer apellido*
Segundo apellido
Número de teléfono
Teléfono movi*
Teléfono fijo
DNI
Número de DNI*
Cumpleaños
Fecha de nacimiento
Acepto los términos y blah, blah, blah
Quiero que me llenéis el correo de spam
function validform(){
/*Declaramos las distintas constantes: los inputs que se van a comprobar, los errores a mostrar y
las expresiones regulares para el móvil y el DNI
*/
const nombre = document.getElementById("nombre").value;
const apellido1 = document.getElementById("apellido1").value;
const movil = document.getElementById("movil").value;
const dni = document.getElementById("dni").value;
const aceptar = document.getElementById("terminos").checked;
const fijo = document.getElementById("fijo").value;
const nombreErr = document.getElementById("nombreErr");
const apellidoError = document.getElementById("apellidoError");
const movilError = document.getElementById("movilError");
const dniError = document.getElementById("dniError");
const aceptarError = document.getElementById("aceptarError");
const fijoError = document.getElementById("fijoError")
const regexMovil = /^[67]\d{8}$/;
const regexFijo = /^[89]\d{8}$/;
const regexdni = /^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKE-trawagmyfpdxbnjzsqvhlcke]$/;
/*establecemos que el contenido de los errores esté vacío por defecto*/
nombreErr.textContent = "";
apellidoError.textContent = "";
movilError.textContent = "";
dniError.textContent = "";
aceptarError.textContent = "";
fijoError.textContent = "";
/*establecemos Valido como ture para que si hay un error se convierta en falso. Si Valido es falso, el formulario
no se envia */
let Valido = true;
/*realizamos las comprobaciones de los campos obligatorios*/
if (nombre === "") {
nombreErr.textContent = "Introduce un nombre!!";
Valido = false;
}
if (apellido1 === "") {
apellidoError.textContent = "Introduce el primer apellido!!";
Valido = false;
}
if (!regexMovil.test(movil)) {
movilError.textContent = "Introduce un móvil válido!!";
valido = false;
}
if (!regexdni.test(dni)){
dniError.textContent = "Introduce un DNI válido!!";
valido = false;
}
if (!aceptar) {
aceptarError.textContent = "Acepta los términos!!";
valido = false;
}
if (fijo !== "" && !regexFijo.test(fijo)) {
fijoError.textContent = "Introduce un fijo válido!!";
valido = false;
}
if (Valido) {
alert ("formulario enviado correctamente");
return true;
} else {
return false;
}
}
/*Reseteamos los mensajes de error*/
function resetErrores() {
document.getElementById("nombreErr").textContent = "";
document.getElementById("apellidoError").textContent = "";
document.getElementById("movilError").textContent = "";
document.getElementById("dniError").textContent = "";
document.getElementById("aceptarError").textContent = "";
document.getElementById("fijoError").textContent = "";
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... filled-but