Atributo requerido de formulario con un mensaje de validación personalizado en HTML5

La creación de formularios web siempre ha sido una tarea complicada. mientras que marcar la forma en sí es simple, verificar si cada campo presenta o no un precio válido y coherente es más difícil, e informar al usuario sobre el asunto puede convertirse en un dolor de cabeza. HTML5 introdujo nuevos mecanismos para formularios. Hay 2 tipos de métodos DOM de validación de restricciones que son checkValidity() y setCustomValidity(). Conozcamos más sobre ellos.

método checkValidity()

Primero usamos el método checkValidity() para verificar si los campos de entrada contienen datos válidos y ejecutamos checkValidity() en el envío del formulario para validar todos los campos del formulario. Si un mínimo de uno no es válido, la validación falla. Al utilizar el método checkValidity(), validamos cada uno de los elementos de entrada en el evento de desenfoque o cada uno de los elementos seleccionados en el evento de cambio. Esto le permite al usuario saber si un campo seleccionado es válido o no en un momento dado, y hace que sea posible transmitir los comentarios del usuario con prontitud.

Sintaxis:

input="this.checkValidity()"

Esto devolverá verdadero si un elemento de entrada contiene datos válidos.

Ejemplo: este ejemplo muestra cómo hacer un atributo obligatorio de formulario HTML junto con la configuración de un mensaje de validación personalizado.

<!DOCTYPE html>
  
<html>
  
<head>
    <title>Form required Attribute | With message validation</title>
</head>
  
<body>
  
    <body style="text-align:center;">
  
        <h1 style="color:green">GeeksforGeeks</h1>
  
        <p>Enter a number and click the button:</p>
  
        <input id="gfg" type="number" min="101" max="999" required>
  
        <button onclick="myFunction()">Try it</button>
  
        <p>An message will display of ERROR, if the number
           is lesser than 101 or greater than 999</p>
        <p id="geeks"></p>
  
        <script>
            function myFunction() {
                var inpObj = document.getElementById("gfg");
                if (!inpObj.checkValidity()) {
                    document.getElementById("geeks")
                              .innerHTML = inpObj.validationMessage;
                } else {
                    document.getElementById("geeks")
                              .innerHTML = "Input is ALL RIGHT";
                }
            }
        </script>
  
    </body>
  
</html>
    Producción:

  • Cuando cargamos el código:
    corte ng
  • Cuando dejamos el campo en blanco y hacemos clic en el botón:
    corte ng
  • Cuando ingresa un valor no válido:
    corte ng
  • Cuando ingresa un valor válido:
    corte ng

establecerValidezPersonalizada()

En un elemento de entrada, se usa para establecer la propiedad validationMessage. Es realmente muy fácil controlar un mensaje de validación personalizado en un formulario HTML5. Averigüemos cómo.

Sintaxis:

input="this.setCustomValidity()"

Esta parte es de suma importancia, ya que ocultará el mensaje de error cuando el usuario ingrese los nuevos datos.

Ejemplo: este ejemplo muestra cómo hacer un atributo obligatorio de formulario HTML junto con la configuración de un mensaje de validación personalizado.

<!DOCTYPE html>
  
<html>
  
<head>
    <title>Form required Attribute | With custom message validation
    </title>
</head>
  
<body>
    <center>
  
        <h1 style="color:green">GeeksforGeeks</h1>
  
        <form id="myform">
            <p>Enter an Email Id:</p>
            <input id="email" oninvalid="InvalidMsg(this);" 
                   oninput="InvalidMsg(this);" name="email" 
                   type="email" required="required" />
            <input type="submit" />
        </form>
    </center>
  
    <script>
        function InvalidMsg(textbox) {
  
            if (textbox.value === '') {
                textbox.setCustomValidity
                      ('Entering an email-id is necessary!');
            } else if (textbox.validity.typeMismatch) {
                textbox.setCustomValidity
                      ('Please enter an email address which is valid!');
            } else {
                textbox.setCustomValidity('');
            }
  
            return true;
        }
    </script>
  
</body>
  
</html>
    Producción:

  • Cuando cargamos el código:
    corte ng
  • Cuando dejamos el campo en blanco y hacemos clic en el botón:
    corte ng
  • Cuando ingresa una ID de correo electrónico no válida:
    corte ng
    Tres tipos de propiedades DOM de validación de restricciones:

  • ValidationMessage: cuando la validez es falsa, contiene el mensaje que mostrará un navegador.
  • willValidate: Indicará cuando se validará el elemento de entrada.
  • Validez: relacionado con la validez de un elemento de entrada, contendrá propiedades booleanas.
  • En cuanto a la validez de los datos, también existen nueve tipos de Propiedades de Validez:

    Propiedad Descripción
    error personalizado Si se establece un mensaje de validez personalizado y se establece en verdadero.
    patrón no coincide Si el valor de un elemento no coincide con su atributo de patrón y se establece en verdadero.
    desbordamiento de rango Si el valor de un elemento es mayor que su atributo máximo y se establece en verdadero.
    rangoUnderflow Si el valor de un elemento es menor que su atributo mínimo y se establece en verdadero.
    pasoDesajuste Si el valor de un elemento no es válido según su atributo de paso y se establece en verdadero.
    demasiado largo Si el valor de un elemento excede su atributo maxLength y se establece en verdadero.
    tipo no coincide Si el valor de un elemento no es válido según su atributo de tipo y se establece en verdadero.
    válido Si el valor de un elemento es válido y se establece en verdadero.
    valor faltante Si un elemento (con un atributo requerido) no tiene valor y se establece en verdadero.

Publicación traducida automáticamente

Artículo escrito por SohomPramanick y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *