Possiamo creare degli indicatori di avanzamento del riempimento di un form con jQuery.
Partiamo dalla seguente marcatura:
<div class="form-group">
<input type="text" name="name" id="name" placeholder="Name" class="form-control">
</div>
Aggiungiamo un'icona tramite CSS all'elemento genitore del campo e la nascondiamo inizialmente alla vista facendo in modo che al suo apparire avvenga un effetto di transizione.
.form-group {
position: relative;
}
.form-group:after {
content: '';
display: block;
width: 20px;
height: 20px;
background: url(images/checked.png) no-repeat 0 0;
position: absolute;
right: 4px;
top: 50%;
margin-top: -10px;
opacity: 0;
transition: opacity 400ms ease-in;
}
.form-group.filled:after {
opacity: 1;
}
Con jQuery usiamo l'evento blur mostrando l'icona solo quando il campo ha un valore effettivo.
$(function() {
$( ":input", "#form" ).on( "blur", function() {
var $input = $( this );
var $formGroup = $input.parent();
$formGroup.removeClass( "filled" );
if( $input.val().length > 0 ) {
$formGroup.addClass( "filled" );
}
});
});