Lire et valider 140 champs
Bonjour,
j'ai présentement un formulaire possédant 140 champs nommés text1 à text140 et j'aurais besoin d'avoir une validation et additionner les champs de nouveau (c'est déjà fait) au 'onChange' d'un des objets input de type texte.
Je suis allé consulter la FAQ sur JavaScript et les DOM afin de m'enligner, mais sans résultat.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
function changementSurtemps(){
var inputList = document.formInspecteurs.elements;
var tot = 0;
int compteur;
compteur = 1;
for(unInput in inputList){
if ((compteur % 4 = 0) && !(isNaN(unInput)) && compteur < 129){
tot+= parseFloat(unInput.value);}
else{
Alert("Veuillez entrer seulement des valeurs numériques dans la colonne de Surtemps.");}
compteur++;
}
} |
Le formulaire est composé de plusieurs lignes et toujours 4 colonnes (champs texte) par ligne et je dois avoir le total de chaque colonne, d'où vient la constante %4 (pour le quatrième champ).
Bon, le code posté ne réagit pas et me donne des erreurs aux lignes auxquelles des changements ont été apporté.
J'ai aussi essayer avec d'autres syntaxes similaires au code précédent et comme le code suivant:
Code:
1 2
|
document.forms['formulaireInspecteurs'].elements[compteur].value; |
mais le compileur ne semble pas pouvoir être en mesure de comiler ce code. C'est toutefois ce que je faisais à l'université..
y aurait-il des suggestions?
quelques heures plus tard...
Bon, j'ai trouvé la bonne syntaxe au problème précédent pour me retrouver nez à nez avec un autre un peu plus emmerdant.. :?
Afin de vous montrer ce en quoi le nouveau problème consiste, voici une parcelle de mon code.. la moitié étant fait 'à la main' et l'autre; 'automatisée' :
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 48 49 50 51 52
|
function changementTempsImprevu(){
var tot = parseFloat(window.document.formInspecteurs.Text3.value);
tot += parseFloat(window.document.formInspecteurs.Text7.value);
tot += parseFloat(window.document.formInspecteurs.Text11.value);
tot += parseFloat(window.document.formInspecteurs.Text15.value);
tot += parseFloat(window.document.formInspecteurs.Text19.value);
tot += parseFloat(window.document.formInspecteurs.Text23.value);
tot += parseFloat(window.document.formInspecteurs.Text27.value);
tot += parseFloat(window.document.formInspecteurs.Text31.value);
tot += parseFloat(window.document.formInspecteurs.Text35.value);
tot += parseFloat(window.document.formInspecteurs.Text39.value);
tot += parseFloat(window.document.formInspecteurs.Text43.value);
tot += parseFloat(window.document.formInspecteurs.Text47.value);
tot += parseFloat(window.document.formInspecteurs.Text51.value);
tot += parseFloat(window.document.formInspecteurs.Text55.value);
tot += parseFloat(window.document.formInspecteurs.Text59.value);
tot += parseFloat(window.document.formInspecteurs.Text63.value);
tot += parseFloat(window.document.formInspecteurs.Text67.value);
tot += parseFloat(window.document.formInspecteurs.Text71.value);
tot += parseFloat(window.document.formInspecteurs.Text75.value);
tot += parseFloat(window.document.formInspecteurs.Text79.value);
tot += parseFloat(window.document.formInspecteurs.Text83.value);
tot += parseFloat(window.document.formInspecteurs.Text87.value);
tot += parseFloat(window.document.formInspecteurs.Text91.value);
tot += parseFloat(window.document.formInspecteurs.Text95.value);
tot += parseFloat(window.document.formInspecteurs.Text99.value);
tot += parseFloat(window.document.formInspecteurs.Text103.value);
tot += parseFloat(window.document.formInspecteurs.Text107.value);
tot += parseFloat(window.document.formInspecteurs.Text111.value);
tot += parseFloat(window.document.formInspecteurs.Text115.value);
tot += parseFloat(window.document.formInspecteurs.Text119.value);
tot += parseFloat(window.document.formInspecteurs.Text123.value);
tot += parseFloat(window.document.formInspecteurs.Text127.value);
window.document.formInspecteurs.Text130.value = tot;
window.document.formInspecteurs.Text132.value = (parseFloat(window.document.formInspecteurs.Text129.value) + parseFloat(window.document.formInspecteurs.Text130.value) + parseFloat(window.document.formInspecteurs.Text131.value));
}
function changementSurtemps(){
var total = 0;
for(var compteur = 0; compteur<=128;compteur++)
{
total += parseFloat(window.document.getElementById("Text" + compteur).value)
alert(total)
}
window.document.formInspecteurs.Text131.value = tot;
window.document.formInspecteurs.Text132.value = parseFloat(window.document.formInspecteurs.Text129.value) + parseFloat(window.document.formInspecteurs.Text130.value) + parseFloat(window.document.formInspecteurs.Text131.value);
} |
Bon.. la partie 'manuelle' fonctionne sans aucun problème. Toutefois, la partie automatisée me dégotte l'erreur : 'objet requis" à la ligne
au caractère 2 (juste devant 'var')
Et là je suis vraiment pogné dans un coin. Je ne vois absolument pas quoi faire. Ne vous gênez pas pour apporter vos idées!
EDIT : ces fonctions sont appelés avec un 'onchange="changementSurtemps()"