Promise et boucle forEach
Bonjour à tous,
J'ai besoin d'aide afin de mettre en place les Promises...
Je souhaite effectuer la validation d'un formulaire à l'aide de promise étant donné que certains champs effectuent des appels Ajax pour lors de la validation. Ci-dessous se trouve le code mis en place :
Le problème qui se pose, est que le formulaire se valide avant le retour de l'appel ajax. Pouvez-vous m'aider ?
Merci d'avance,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| btSubmit.on('click', async (e) => {
e.preventDefault();
e.stopPropagation();
let check = await verifForm(form);
console.log('----- SUBMIT FORM -----', check);
});
async function verifForm(form) {
var promises = [];
console.log('avant foreach');
await $.each(form[0], async (index, champs) => {
if (champs.hasAttribute('required')) {
console.log('avant callback', champs.name);
await options.callback(champs);
console.log('après callback', champs.name);
}
});
console.log('après forEach');
}
...
callback: (champs) => {
var result = true;
if (!champs.checkValidity()) {
champs.classList.add('is-invalid');
result = "Ce champs est obligatoire";
} else {
if (champs.name == 'matricule') {
console.log('--- start matricule');
result = verifMatricule(champs.value);
console.log('--- stop matricule');
}
}
return result;
}
function verifMatricule(valeur) {
var data = {champsATester: 'matricule', matricule: valeur};
return $.ajax({
url: "ajax/users/ajax.gestion_utilisateur.php",
dataType: 'text',
data: data,
type: 'post'
});
} |