Bonjour,
J'ai tenté d'écrire quelques fonctions javascript destinées à permettre l'insertion, la modification ou la suppression de données dans une BDD quelque soit le nombre de champs du formulaire.
Je rencontre néanmoins un gros problème dans ma boucle for destinée à afficher un message d'erreur à côté du champ de saisi lorsque celui-ci a été laissé vide et qu'il est pourtant obligatoire !
Le code est le suivant : (Les commentaires correspondent au cas où on aurait 2 champs dans le formulaire de priorité 1 -> ces champs sont vides !!)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // Fonction de vérification de la complétion des champs function checkEmptyField(nFields) { //nFields est le nombre de champ du formulaire var digit = 1; // permet d'incrémenter sur l'id des champs du formulaire var ind = 0; // permet la vérification que tous les champs obligaoitres ont été remplis //var cmd = ""; fieldValue = getDataFromField(nFields,'value'); // Renvoi un Array contenant "empty,empty" //alert(fieldValue); for(i=0 ; i<nFields ; i++) { //alert('i=' + i); if(fieldValue[i] == 'empty' && getPriorityFromField(i,nFields) == 1) { // Ce if doit être effectué ! document.getElementById('txtHint' + digit).innerHTML = 'Ce champ est obligatoire !'; //cmd = cmd + "document.getElementById('" + 'txtHint' + digit + "').innerHTML = 'Ce champ est obligatoire !';" ind = ind + 2; } else(fieldValue[i] == 'empty' && getPriorityFromField(nFields) == 2) { ind++; } digit++; // pour incrémenter vers l'id du champ de formulaire suivant //alert(digit); } //alert(cmd); //eval(cmd); //alert('ind =' + ind); return ind; // un test est ensuite effectué pour vérifier que ind est égal au nombre de }
la structure d'un textbox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input type="text" id="Fieldn°duchamp" name="nomduchampdelatableBDD-n°deprioritéduchamp" >
On se place dans un seul cas : les 2 champs ont une priorité de 1 et sont vides (nFields = 2). Le code situé dans la boucle FOR ne s'effectue qu'une seul fois alors qu'il devrait s'effectué 2 fois...
Est-ce que cela vient du :
Je ne pense pas car j'ai essayé de raisonner en cherchant à stocker une ligne de commande destiné à écrire simultanément le message d'alert à côté de tous les textbox et le problème persiste !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById('txtHint' + digit).innerHTML = 'Ce champ est obligatoire !';
Désolé pour la longueur du message mais je pense qu'il à le métite d'être clair !
Merci d'avance pour votre aide !!![]()
Partager