I Deferred Object di jQuery possono anche essere usati per sincronizzare i task della validazione dei form.
Un esempio potrebbe essere il seguente:
(function( $ ) {
// Restituisce un valore booleano
function validate( value ) {
var pattern = "@";
if( value.indexOf( pattern ) != -1 ) {
return true;
} else {
return false;
}
}
$( document ).ready(function() {
$( "#email" ).on( "keyup", function() {
var val = $( this ).val();
$.when( validate( val ) ).done( function( def ) {
// def contiene il valore booleano della validazione
if( def ) {
$( "#submit" ).removeAttr( "disabled" );
}
});
});
});
})( jQuery );