In jQuery è semplice abilitare il pulsante di invio di un form quando tutti i campi obbligatori sono stati riempiti.
Per prima cosa definiamo un selettore personalizzato per reperire i campi dei form privi di un valore:
jQuery.extend( jQuery.expr[ ":" ], {
novalue: function( element ) {
var value = $( element ).val();
return ( value.length === 0 || /^\s+$/.test( value ) );
}
});
Quindi creiamo un watcher globale su tutti i campi obbligatori del form:
var $form = $( "#form" );
if( $form.length ) {
var watcher = setInterval(function() {
if( !$form.find( ".required:novalue" ).length ) {
$form.find( ":submit" ).removeAttr( "disabled" );
clearInterval( watcher );
}
}, 250);
}