I Deferred Object di jQuery possono anche essere usati per sincronizzare le routine della validazione dei form.
Un esempio potrebbe essere il seguente:
(function( $ ) {
// Restituisce un valore booleano
function validate( value ) {
return /^[a-z0-9]+$/.test( value );
}
$( document ).ready(function() {
$( "#username" ).on( "keyup", function() {
var $input = $( this );
var val = $input.val();
$input.removeClass( "is-invalid" );
$.when( validate( val ) ).done( function( def ) {
// def contiene il valore booleano della validazione
if( !def ) {
$input.addClass( "is-invalid" );
}
});
});
});
})( jQuery );