Saltar al contenido

Verificando si se requiere un campo de entrada usando jQuery

Es importante interpretar el código de forma correcta previamente a adaptarlo a tu proyecto y si tquieres aportar algo puedes comentarlo.

Solución:

El required la propiedad es boolean:

$('form#register').find('input').each(function()
    if(!$(this).prop('required'))
        console.log("NR");
     else 
        console.log("IR");
    
);

Referencia: HTMLInputElement

Una respuesta un poco más completa, inspirada en la respuesta aceptada:

$( '#form_id' ).submit( function( event ) 
        event.preventDefault();

        //validate fields
        var fail = false;
        var fail_log = '';
        var name;
        $( '#form_id' ).find( 'select, textarea, input' ).each(function()
            if( ! $( this ).prop( 'required' ))

             else 
                if ( ! $( this ).val() ) 
                    fail = true;
                    name = $( this ).attr( 'name' );
                    fail_log += name + " is required n";
                

            
        );

        //submit if fail never got set to true
        if ( ! fail ) 
            //process form here.
         else 
            alert( fail_log );
        

);

En este caso hacemos un loop de todo tipo de entradas y si son requeridas, verificamos si tienen un valor, y si no, se agrega un aviso de que son requeridas a la alerta que se ejecutará.

Tenga en cuenta que este ejemplo asume que el formulario procederá dentro del condicional positivo a través de AJAX o similar. Si realiza el envío a través de métodos tradicionales, mueva la segunda línea, event.preventDefault(); al interior del condicional negativo.

No necesitas jQuery para hacer esto. Aquí hay una solución ES2015:

// Get all input fields
const inputs = document.querySelectorAll('#register input');

// Get only the required ones
const requiredFields = Array.from(inputs).filter(input => input.required);

// Do your stuff with the required fields
requiredFields.forEach(field => /* do what you want */);

O simplemente puede usar el :required selector:

Array.from(document.querySelectorAll('#register input:required'))
    .forEach(field => /* do what you want */);

Aquí puedes ver las reseñas y valoraciones de los usuarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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