IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Script ne fonctionne pas sous IE check de bouton radio


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut Script ne fonctionne pas sous IE check de bouton radio
    Bonjour,
    J'ai une fonction pour savoir si l'on a bien remplit tout les inputs type 'radio' d'un formulaire, il fonctionne bien sous FF et Chrome mais pas IE.
    Est ce que quelqu'un peut y jeter un coup d'oiel s'il vous plait
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function valid_form(form){
    	var questions = getRadios(form);
    	for(var i in questions ){
    		//objet radio
    		var radio = form[questions[i]];
    		if(isRadioChecked(radio) == false ){
    			return false;
    		}
    	}
    	return true;
     }
     
    function getRadios(form){
    	var is = form.getElementsByTagName("input");
    	var tab = new Array();
    	for(var i = 0;i<is.length;i++){
    		var t = is[i].getAttribute("type");
    		if(t=="radio"){
    			var name = is[i].getAttribute("name");
    			if(!tab.contains(name)){
    				tab.push(name);
    			}
    		}
    	}
    	return tab;
    }
     
     function isRadioChecked(radio){
    	var c = radio.length;
    	while(c>0){
    		c--;
    		if(radio[c].checked) {
    			return true;
    		}
    	}
    	alert('Toutes les questions doivent être Remplit');
    	return false;
    }
    Pour vérifier mon formulaire je l'appel de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onSubmit='return valid_form(this);'
    Une idée?

    Merci

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    tu as ta fonction getRadios() quelque part?

    sinon, ton nommage de paramètres est un brun dangereux (form, radio...)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par javatwister Voir le message
    tu as ta fonction getRadios() quelque part?

    sinon, ton nommage de paramètres est un brun dangereux (form, radio...)
    Ah, comment ca dangereux?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var radio = form[questions[i]];
    une syntaxe plus rigoureuse serait moins dangereuse et plus compatible ...

    on peut voir le html des elements du form ?

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par bastian06n Voir le message
    il fonctionne bien sous FF et Chrome mais pas IE
    qu'est-ce qui te le prouve?

    pourquoi places-tu un return dans une boucle while?

    peut-on voir la fonction getRadios()?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    on peut voir le html des elements du form ?

    Oui les voila (c'est une boucle php qui les affiches les id sont des entier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input  type="radio" name="question_<?php echo $row['id'];?>" value="5"/>

    PS: j'ai rajouté la fonction getradio() j'avais omit de la mettre

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par javatwister Voir le message
    qu'est-ce qui te le prouve?

    pourquoi places-tu un return dans une boucle while?

    peut-on voir la fonction getRadios()?
    1) Ce qui me le prouve c'est que IE m'envoie sur la page d'enregistrement du formulaire au lieu de me faire l'alerte lorsque je ne remplit pas tout les boutons radio

    2) le return sert à savoir si les boutons sont checked, il return true si checked sinon il fait un false et une alerte

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    à l'arrache, getAttribute va poser pbm sous IE7;

    à part ça, je trouve abusif d'utiliser 3 fonctions pour tester une série de radio!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par javatwister Voir le message
    à l'arrache, getAttribute va poser pbm sous IE7;

    à part ça, je trouve abusif d'utiliser 3 fonctions pour tester une série de radio!
    Si tu as autre chose je veux bien que tu me montre, ce n'est pas mon code je l'ai adapter.

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    je ne comprends pas non plus ton radio.length

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input  type="radio" name="question_<?php echo $row['id'];?>" value="5"/>
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    document.forms["name_du_form"].elements["question_1"]
    //ou si il y en a plusieurs portant le même name
    document.forms["name_du_form"].elements["question_1"][indice]

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par javatwister Voir le message
    je ne comprends pas non plus ton radio.length
    ca sert a recuperer la liste des inputs radio pour chaque name

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    stp, simplement le html généré avec ta série de boutons!

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par javatwister Voir le message
    stp, simplement le html généré avec ta série de boutons!
    <input type="radio" name="question_1" value="0"/>
    <input type="radio" name="question_1" value="1.5"/>
    <input type="radio" name="question_1" value="3"/>
    <input type="radio" name="question_1" value="5"/>
    .........

    <input type="radio" name="question_34" value="0"/>
    <input type="radio" name="question_34" value="1.5"/>
    <input type="radio" name="question_34" value="3"/>
    <input type="radio" name="question_34" value="5"/>

    etc... autant de fois qu'il y a de question dans ma table sql; (le name est composé de 'question_'+Id de la question comme le dis le code php...)

  15. #15
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    pourquoi tu ne mets pas un checked="checked" par défaut sur l'un des éléments de chaque série?; le client ne pourra pas tout décocher!

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Il pourrait penser avoir déjà remplit cette question

  17. #17
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Salut,
    au vu de la façon dont tu t’en sers, je suppose que ta variable questions est un tableau contenant les attributs name de tes checkboxes. Vérifie que ces attributs name sont bien tous correctement définis.

    Sinon le problème peut venir du cache, qui est un peu plus tenace chez IE que chez FF… On ne sait jamais

    En pièce jointe, avec une fonction getRadios extrapolée, j’ai fait un document qui marche sous FF et IE8.
    Attention toutefois, la fonction isRadioChecked n’est pas capable en l’état de traiter les checkboxes toutes seules (voir ligne 54).



    Edit: Ouh mazette, une foule de réponses en si peu de temps ^^ Hum, bon, il ne me semble pas que ma réonse fasse doublon avec une précédente…
    Fichiers attachés Fichiers attachés

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["name_du_form"].elements["question_1"].length

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["name_du_form"].elements["question_1"].length
    Oui et? Je comprends pas...

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 85
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Vérifie que ces attributs name sont bien tous correctement définis.
    Salut,
    les names sont bien tous définit :/

Discussions similaires

  1. Mon script ne fonctionne pas sous android
    Par sp2308 dans le forum jQuery
    Réponses: 4
    Dernier message: 19/08/2014, 23h20
  2. script jquery fonctionne pas sous IE
    Par bigbo26 dans le forum jQuery
    Réponses: 3
    Dernier message: 18/06/2010, 11h24
  3. différence entre ie et firefox script ne fonctionne pas sous ce dernier
    Par mika-57- dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2009, 09h26
  4. Script ne fonctionnant pas sous FireFox
    Par durnambule dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/08/2008, 12h31
  5. Script ne fonctionne pas sous IE
    Par Stessy dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 29/09/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo