¿Cómo implementar mensajes de validación personalizados para formularios en HTML5?
1. Primero, necesitamos establecer las reglas de validación del formulario.
2. Luego defina el mensaje de validación que se mostrará de acuerdo con las reglas de validación del formulario.
3. Finalmente, combine JavaScript y CSS para ocultar todos los mensajes de validación predefinidos y luego controle el estado oculto de los mensajes de validación en función de si la entrada en el formulario cumple con las reglas de validación.
Ilustremos esto con un ejemplo específico. Puede colocar este ejemplo directamente en el navegador para ver el efecto, pero preste atención a la referencia a la biblioteca de terceros jQuery en el código. Deberías configurarlo tú mismo en tiempo de ejecución:
<! doctype html & gt
& lthtml & gt
& lthead & gt
& ltmeta charset = " utf-8 "/& gt; p>
& lttitle & gt Formulario: mensaje de validación
//Establezca algunos estilos necesarios, como el estilo de texto del mensaje de verificación y el estilo que controla la visibilidad del mensaje de verificación.
& ltstyle & gt
Entrada: válida {
Antecedentes: # fff
}
Entrada: {
Fondo:# fcc
Color:# 333;
}
no válido. mensaje de validación {
Margen inferior:15px;
}
. Validación: extensión del mensaje {
Tamaño de fuente: 0,8 micras
Color de fondo: #eee
Relleno: 6 px
Borde: 1 px Sólido # ccc
Radio de borde: 10px;
Color: # 666;
}
//Todos con atributo de clase ocultar Los elementos quedarán ocultos.
. Ocultar {
Mostrar: Ninguno;
}
& lt/style & gt;
& lt/head & gt;
& ltbody>
& ltarticle>
& lth 1> formulario<span>-solicitud de validación
& lt/article & gt;
& ltdiv id = " resultado-stub " class = " bien escondido " >>p>
& ltform id = " cambio-email-form " name = " cambio-email-form "& gt;
& ltfield set>
& lth4 & gtModificar dirección de correo electrónico
//Establezca el formulario que deben seguir las reglas de validación.
//atributo patrón: Especifica el patrón utilizado para validar el campo de entrada.
//atributo maxlength: especifica la longitud máxima del campo de entrada en función del número de caracteres.
//atributo requerido: Especifica que el elemento de entrada es un elemento requerido.
& lt etiqueta & gt nombre de usuario:
& lt tipo de entrada = "texto" nombre = "nombre de usuario"
id = "nombre de usuario" patrón ="[ a-zA-Z ]{5,} "
maxlength="30" requerido />
//Establecer el mensaje de verificación del formulario y ocultarlo en combinación con la clase estilo de atributo.
& ltdiv & gt
//El valor del atributo de regla de datos aquí es una de las reglas de validación integradas del formulario HTML5.
& ltSpan Data-Rule="Falta valor"
class="hide">El nombre de usuario no puede estar vacío.
& ltspan data-rule="patternMismatch "
class="hide " >Deben ser caracteres alfabéticos (la longitud debe ser de 5 a 30 caracteres).
</div>
<label>Dirección de correo electrónico:
//Establece las reglas de validación que debe seguir el formulario.
& ltEnter type = " email " name = " email " id = " email "
title= "Dirección de correo electrónico requerida" requerida/>
//Establece el mensaje de verificación del formulario y lo oculta en combinación con el estilo del atributo de clase.
& ltdiv & gt
& ltspan data-rule="valueMissing "
La dirección de correo electrónico no puede estar vacía.
& ltspan data-rule="typeMismatch "
El formato del correo electrónico es incorrecto.
& lt/div & gt;
& ltHR/>;
//Establezca dos botones para "borrar el contenido del formulario y validar el contenido del formulario". .
& ltButton type = "enviar" id = "Enviar"
nombre = "enviar" & gtModify
& ltbutton type = " botón " id = " verificar validación "
name="checkValidation "
class="btn " >Verificación
& lt/fieldset & gt;
</form>
</div>
<script>
ventana.onload= función() {
// - p>
//Crea un contenedor de reglas de validación.
var regla nombres =[];
//Llene el contenedor de reglas de validación.
//Busque todos los elementos con reglas de validez y luego agregue el valor del atributo de regla de datos del elemento a la matriz de reglas de validez.
$("[Reglas de datos]"). cada(función(I, elemento){
var nombre de regla = elemento. get atributo(' regla-datos');
if ($.inArray(nombre de regla, nombres de regla) <0) {
nombres de reglas . push(nombre de regla);
}
});
Definir variables p>
//Primero asegúrese de que la interfaz de usuario oculte todos los mensajes de verificación.
//Luego ejecute las reglas de validación en el formulario seleccionado.
validar = función() {
$(".validation-message span")
. agregar clase("ocultar");
document.getElementById('cambiar-formulario-correo electrónico')
. comprobar validez();
},
//Consulta cada elemento de entrada para determinar qué elemento no es válido.
//Una vez que se detecta un elemento no válido, recorra las reglas de validación para descubrir el motivo de la invalidez y luego envíe un mensaje al usuario.
Validación fallida = función(e) {
Definir variable
elemento = e.srcElement,
Validez = elemento.valididad
if (!validity.valid) {
nombres de reglas . foreach(función(nombre de regla){
checkRule(validez,
Nombre de la regla,
elemento);
});
e. prevent default();
}
},
//Utilice una instancia del objeto ValidityState del elemento de entrada para ejecutar la regla de validación.
//Si la regla de verificación devuelve VERDADERO, significa que no se puede pasar la verificación y habrá un mensaje correspondiente en el formulario.
checkRule = function(estado, nombre de regla, ele) {
if (estado[nombre de regla]) {
$(ele). Siguiente()
. Find('[data-rule= ')
+ nombreRegla + '"]')
.remove class(' hide ');
}
};
//Todos los controladores de eventos de validación se adjuntan al elemento de entrada, no al elemento del botón
$(':input:not(:button). ).').
each(function() {
this. on invalid = error de validación;
this.onblur = validar
});
$('#checkValidation '). Haga clic(validar);
}
& lt/script>
& ltscript src= "../js/jquery . js " & gt;& lt/script & gt;
& lt/body & gt;
& lt/html & gt;
Recomendarlo al sitio web del tutorial Aprenda lo relevante conocimiento una vez, espero que te sea útil.