Bonjour,
Je développe un projet avec le Zend Framework. Mon formulaire est généré avec Zend_Form.
Pour valider mes formulaires à la volée j'appelle un contrôleur ajax avec le code suivant, il me renvoie les erreurs éventuelles sur le champ email.
Ceci marche quel que soit le formulaire du moment qu'il y a un champs email quelle que soit sa configuration.
J'aimerai que cela marche pour n'importe quel champ.
Je pourrais envisager de récupérer toutes les valeurs des champs et de tout valider d'un coup, mais ce sera plus lourd. Auriez vous une autre solution ?
Je développe un projet avec le Zend Framework. Mon formulaire est généré avec Zend_Form.
Pour valider mes formulaires à la volée j'appelle un contrôleur ajax avec le code suivant, il me renvoie les erreurs éventuelles sur le champ email.
Ceci marche quel que soit le formulaire du moment qu'il y a un champs email quelle que soit sa configuration.
J'aimerai que cela marche pour n'importe quel champ.
Je pourrais envisager de récupérer toutes les valeurs des champs et de tout valider d'un coup, mais ce sera plus lourd. Auriez vous une autre solution ?
$(document).ready(function () {
$('#email').keyup(function () {
if (this.value != this.lastValue) {
// Initialisation du timer
if (this.timer) {
clearTimeout(this.timer);
}
this.timer = setTimeout(function () {
// Ajout du loader
$('#email').after('<img src="/img/ajax-loader.gif" height="16" width="16" />');
// Requête ajax
$.ajax({
url: 'http://www.domain.fr/' + $('html').attr('lang') + '/ajax/check-email',
data: 'form=' + $('form').attr('id') + '&email=' + $('#email').val(),
dataType: 'json',
type: 'post',
// Gestion si ok
success: function (response) {
$("#email-element>img").remove();
$("#email-element>ul").remove();
if(response.messages != null) {
$('#email').after('<ul class="' + response.type + '" ajax"><li>' + response.messages + '</li></ul>');
}
},
// Gestion si ko
error: function (response) {
$("#email-element>img").remove();
$("#email-element>ul").remove();
}
});
}, 500);
this.lastValue = this.value;
}
});
});