11548 sujets

JavaScript, DOM et API Web HTML5

Voilà j'ai un formulaire avec les cases suivantes :

<form method="post" name="formulaire">
	<p>Nom : <input type="text" name="nom" /></p>
	<p>Pr&eacute;nom : <input type="text" name="prenom" /></p>
	<p>Adresse e-mail : <input type="text" name="mail" /></p>
	<p>Adresse postale : <input type="text" name="addresse"  size="80" /></p>
	<p>Ville : <input type="text" name="ville" /></p>
	<p>Pays : <input type="text" name="pays" /></p>
	<p>Code postal : <input type="text" name="codePost" /></p>
	<p>T&eacute;l&eacute;phone : <input type="text" name="tel" maxlength="14" /></p>
   	
	<p><input type="submit" value="envoyer" onclick="checkformulaire()" /> <input type="reset" /></p>

</form>


J'aimerais, quand on appuis sur le bouton "envoyer", afficher en message d'alerte le contenu du premier champ. Je fais donc appel à la fonction suivante au clique sur le bouton "envoyer".

var check = true;
function checkformulaire() {
var champs=new Array("nom", "prenom", "mail", "addresse","ville", "pays", "codePost", "tel");
var myInput = document.getElementsByName(champs[4])[0];
alert(document.forms.formulaire.myInput.value);
}


Je veux pas passer par un tableau parce que ceci est simplement un test et que je voudrais généraliser ça pour n'importe quel champ (champ numéro i).

getElementsByName(champs[4]) devrait me retourner un tableau, en ajoutant [0] j'en récupère l'unique valeur...je ne vois donc pas d'erreur ) ce niveau là, ni même dans ce qui suit et pourtant ça ne veux pas fonctionner. Smiley confus

Quelqu'un pourrait-il me dire où se trouve l'erreur dans ma fonction ?

merci d'avance.
Modifié par mathmax (07 Feb 2006 - 00:52)
merci pour ce post très intéressant. Smiley smile
Il m'intérésserait cependandant de savoir pourquoi ma fonction ne marche pas... Smiley ohwell
mathmax a écrit :
merci pour ce post très intéressant. Smiley smile
Il m'intérésserait cependandant de savoir pourquoi ma fonction ne marche pas... Smiley ohwell

Pour que getElementsByName marche, il aurait fallu que tous tes éléments input aient le même name, et de toute façon pourquoi faire compliqué
alors que le tableau des inputs éxiste déja dans la mémoire de ton navigateur :
function checkformulaire(numero) {
alert(document.getElementsByTagName('input')[ numero].value);
}
Avec le numéro de champs choisi.
De plus je crois que name ne va plus faire partie des standards.
edit paragraphe 4.10
Modifié par chmel (06 Feb 2006 - 01:01)
c'est bon en fait il fallait mettre

var myInput = document.getElementsByName(champs[4])[0];
alert(myInput.value);


comme tu le fais toi sauf que j'utilise getElementsByName au lieu de getElementsByTagName.

Mais il est vrai qu'utiliser getElementsByTagName est ici plus judicieux. Ca m'évite de faire un tableau...

merci pour ton aide Smiley smile