Je m'énerveu contreu Internet Exploreur . Fonction qui marcheu pas

Résolu
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 2 sept. 2005 à 16:27
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006 - 5 sept. 2005 à 13:13
Bonjour tou l'monde



J'ai une fonction qui est bien et qui me sert à valider un formulaire.

Prenons depuis le début afin que vous compreniez bien


Je complète un champ formulaire <select> à l'aide d'un champ text
et une fonction toute bête. Ensuite, je contrôle si l'utilisateur à
entré entre 5 et 10 options, le formulaire peut être validé, sinon,
alert(' attention !!!').

Lorsque j'appuye sur mon joli bouton Valider, j'appelle une belle fonction qui est la suivante :

<script>

//liste est mon champ <select>

function checkmc(list) {//list = document.formulaire.liste

var nbdoption = (list.options.length-1);

if(nbdoption<5){

alert('Vous devez insérer au moins 5 options');

}

if(nbdoption>10){

alert('Vous pouvez insérer jusqu\'à 10 options. Veuillez en retirer');

}

if((nbdoption>=5)&&(nbdoption<=10)){

//si on a le bon nombre d'options, on
place les valeurs <option> dans des

for(var j=1; j<=nbdoption; j++){


soumission.eval('motfr'+j).value=list.options[j].value;//Internet
Explorer Bloque ici

}

soumission.submit();

}

}

</script>



Question pertinente : La méthode eval est elle la meilleure, si oui, elle ne semble pas marcher sur IE, si non existe-t'il un autre méthode.

Question moins pertinente : pourquoi microsoft =caca et tout le monde l'utilise ????



merci

13 réponses

pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
5 sept. 2005 à 12:08
Pardon j'ai pas les idées claire ce matin.

et document.getElementById('liste').option[j].value ça marche pas ?
3
pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
2 sept. 2005 à 16:44
1-utilises plutot les id de tes input pour y accèder :

document.getElementById('MonInput').value

2-l'accès aux valeur d'un select se fait comme ça :

this.form.elements['liste'].options[this.form.elements['liste'].selectedIndex].value

3-Je te conseillerai de faire une fonction qui retourne un booleen

et dans ton onsubmit="return mafonction();"

si elle retourne false cela bloque la soumission sinon le formulaire est validé.

j'espère que ça va t'aider
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
2 sept. 2005 à 16:51
mon problème est pas tout à fait ça.



En fait je suis dans ue boucle, si je fais ça :



soumission.motfr1.value=list.options1.value;

soumission.motfr2.value=list.options2.value;

soumission.motfr3.value=list.options3.value;

soumission.motfr4.value=list.options4.value;

etc ....



ça marche comme ça.

Mais la boucle a un intérêt, et j'aimerai m'en servir. Comment faire ici ??



merci
0
pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
2 sept. 2005 à 17:03
ton soumission.motfr1 c'est un input de ton from soumission

exemple :

si motfr_i est l'id de mon input avec i de 1 à 5

j'y accède comme ça dans ma boucle :

document.getElementById('motfr_'+i).value;//marche avec tous les navigateurs



Pour ce qui est de l'accès à la liste, il arrive des fois la syntaxe que tu utilises ne fonctionne pas.

celle que je t'ai donné fonctionne également avec tous les nav.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
3 sept. 2005 à 14:40
Bonjour,

Question moins pertinente : pourquoi microsoft =caca et tout le monde l'utilise ????

Encore quelqu'un qui est incapable d'aligner 2 lignes ( élémentaires )
dans un langage et qui a l'outrecuidance de critiquer un OS.
[ ma réaction serait la même face à une attaque aussi lamentable
envers Unix/Linux ou des produits comme Mozilla... ]
Si les produits de Microsoft te font gerber à ce point là, ne les utilise
plus, il existe des alternatives superbes [ certaines open-sources,
des gratuites... ], nul ne viendra te critiquer.

Cordialement. Bul. Site[mailto:marcelBultez@Tiscali.fr Mail]
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 4
5 sept. 2005 à 03:06
Salut!

Au lieu de :

soumission.eval('motfr'+j).value=list.options[j].value;//

Essai :

soumission.elements["motfr"+j].value=list.options[j].value;

A+, Ghislain
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
5 sept. 2005 à 09:22
Bultez, merci de ton ultra sérieux, pro microsoft ou pas, j'en ai rien à cirer du moment que ça tourne, mais je constate que microsoft m'a planté plus de fois...

>> quelqu'un qui est incapable d'aligner 2 lignes

>> Il y a les designer qui font un effort de coder proprement

>> Et il y a les codeur qui ont un sens inouï du mauvais goût et du manque d'effort de présentation de base
http://marcel-bultez.chez.tiscali.fr/PetitesAnnoncesGratuites/index.php (fait gaffe ici y'a une coquille dans le code)





Merci Ghislain, je m'en vais essayer ce bout de code tout de suite.
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
5 sept. 2005 à 10:33
Bon, j'ai essayé ta méthode Ghislain, sans réussite sous IE (firefox). Au risque de passer pour un nul (et je m'en excuse par avance d'utiliser ce forum pour accroître mes connaissances
), j'ai essayé la méthode de pymm

document.getElementById('motfr'+i).value;

et ça permet au navigateur de ne pas bloquer sur mon erreur, mais ne remplace pas mes valeurs. Il y a une partie de code que je n'arrive pas à convertir



document.getElementById('motfr'+j).value=document.liste.options[j].value;



J'ai essayé différentes syntaxes sans résultat.

Vous avez des idées ?

Merci
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
5 sept. 2005 à 10:42
Après avoir descendu Microsoft, je suis
très flatté que Tynmar s'en prenne à moi.
Bul. Site[mailto:marcelBultez@Tiscali.fr Mail]
0
pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
5 sept. 2005 à 11:22
Je crois que ta fonction est mal pensée. après le test du nbdoption

il faut que tu parcours tout ton select pour trouvé les options selectionnée.

si une est selectionnée alors

document.getElementById('motfr'+
this.form.elements['liste'].selectedIndex)=this.form.elements['liste'].options[this.form.elements['liste'].selectedIndex].value(ou text)

pour le travail sur les listes, tu peux allé pour ici :

http://www.toutjavascript.com/savoir/savoir06_2.php3
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
5 sept. 2005 à 11:28
Non, c'est pas tout à fait ça. je ne veux pas savoir combien il y a
d'options sélectionnées. je veux savoir combien il y a d'options. Mais
ça marche, je sais combien il y a d'options. je veux placer toutes les valeurs de mes options dans des "input type hidden".



for(var j=1; j<=nbdoption; j++){

document.getElementById('motfr'+j).value=formulaire.listeen.options[j].value;

}

Ce qui ne marce pas ici c'est formulaire.listeen.options[j].value;

merci
0
pymm Messages postés 48 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 8 septembre 2005
5 sept. 2005 à 12:08
Pardon j'ai pas les idées claire ce matin.

et document.getElementById(liste).option[j].value ça marche pas ?
0
tynmar Messages postés 77 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 28 février 2006
5 sept. 2005 à 13:13
Pfiou, tu avais écrit en tout petit la solution un peu plus haut pymm. il ne s'agit pas de value mais de text . J'aurai bien appris quand même. En tout cas, pas évident de faire des scripts compatibles IE, Firefox, Opera...



Merci beaucoup
0