Accéder aux tableaux d'un formulaire

Le
JCR
Bonjour,

Je voudrais vérifier les données d'un formulaire contenant des tableaux.
Je n'arrive pas à accéder aux éléments du tableau à partir d'un script
JavaScript, j'obtiens à chaque fois le message :
form.Tableau has no properties.

Voici un exemple simplifié :

<SCRIPT language="javascript" type="text/javascript">
function Validate(form)
{
alert (form.Name[0].value);
return false;
}
</SCRIPT>

<form action="test.html" method="post">
Names<BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="submit" onClick="return Validate(this.form)" name="Upload"
value="Submit">
</form>

Peut-être y a-t-il une autre syntaxe à utiliser, à la place de
form.Name[0].value ?

Merci pour votre aide,
Jean-Claude
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Elegie
Le #721490
JCR wrote:

Bonjour,

Je voudrais vérifier les données d'un formulaire contenant des tableaux.


L'exemple que vous citez ne fait intervenir aucun tableau (en dehors de
la collection de contrôles), simplement un identifiant contenant des
crochets.

alert (form.Name[0].value);

<input type="text" name="Name[]" size="20" value=""><BR>


Les crochets, dans la syntaxe javascript, occupent un rôle bien
particulier. Bien qu'il soit parfaitement légal de les utiliser dans un
identifiant, il vous faut alors utiliser une autre notation pour accéder
à la valeur de la propriété référencée par cet identifiant : la notation
dite "tableau".

Utilisez :

alert (form.elements["Name[]"][0].value);

Plus d'informations, en anglais :


Bonne journée.

JCR
Le #721489

Les crochets, dans la syntaxe javascript, occupent un rôle bien
particulier. Bien qu'il soit parfaitement légal de les utiliser dans un
identifiant, il vous faut alors utiliser une autre notation pour accéder
à la valeur de la propriété référencée par cet identifiant : la notation
dite "tableau".

Utilisez :

alert (form.elements["Name[]"][0].value);

Plus d'informations, en anglais :


Bonne journée.




Merci !

ASM
Le #721486
Bonjour,

Je voudrais vérifier les données d'un formulaire contenant des tableaux.
Je n'arrive pas à accéder aux éléments du tableau à partir d'un script
JavaScript, j'obtiens à chaque fois le message :
form.Tableau has no properties.

Voici un exemple simplifié :

<SCRIPT language="javascript" type="text/javascript">
function Validate(form)
{
alert (form.Name[0].value);


Ça ne peut fonctionner comme ça, il faut faire une boucle sur les
éléments du formulaire

function validate(form) {
// collection des éléments du form qui ont pour nom 'Name[]' :
var f = form.elements('Name[]');
// boucle pour vérifier chacun d'eux :
for(var i=0; i<f.length; i++) {
if(f[i].value == '' || f[i].value.length<1)
alert('champ non rempli');
f[i].focus();
f[i].select();
return false;
}
return true;
}


</SCRIPT>



La fonction validate() s'emploie comme ceci :

<form action="test.html" method="post"
onsubmit="return validate(this);">

et non pas sur le bouton d'envoi

(qui va m'empêcher d'envoyer par la touche Entree ?)
(et donc sans le bouton de submit ...)

Names<BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="text" name="Name[]" size="20" value=""><BR>
<input type="submit" onClick="return Validate(this.form)" name="Upload"
value="Submit">
</form>



--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Publicité
Poster une réponse
Anonyme