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 :

this.value et IE


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut this.value et IE
    Salut a tous,

    j'ai une petite ligne de code qui ne marche pas sous IE (encore une me direz vous).

    La voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select name="type" onchange="go(this.value,\'affselecttype\',\'affselecttypeverif\',\'../AJAX/selecttypecritan.php?type=\');" >
    Dans la fonction go lorsque je fait un alert de l'argument correspondant au this.value je n'obtient rien. Alors que sous FF j'obtient bien la ligne sélectionné.

    Est-ce normal? Le this.value n'est pas conseillé dans un select?

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    j'ai une série d'erreurs (sous IE et Firefox) avec les \' : remplace les par ' ou \". Mais ne mélange pas les deux syntaxes.

  3. #3
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    non ca c'est normal c'est parce que le code est dans un echo ' '; J'ai tout e ma synthaxe comme ca et ca marche tres bien. La le problème viens vraiment du this.value.

    SI je fait avec getelementbyID.... ca devrait marcher je pense mais j'aimerai savoir pourquoi dans ce cas la le this.value ne marche pas.

  4. #4
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    Si vous voulez vous rendre compte par vous même regarder ce que ca donne juste avec ce code sous FF et IE.

    C'est quand même hallucinant que IE ne prennet pas en compte le this.value.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select onchange="alert(this.value);">
    	<option>1</option>
    	<option>2</option>
    	<option>3</option>
    	<option>4</option>
    	<option>5</option>
    </select>
    Sinon j'ai vérifier ca fait pareil avec onclick..., le problème viens vraiment du this.value

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Pour afficher une "value", le minimum est qu'il y en ait une, ce qui n'est pas le cas dans ton exemple. D'autre part, la syntaxe est incorrecte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="alert(this.options[this.selectedIndex].value)"

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    en général je travail plutôt sur l'objet que sur ses attributs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="type" onchange="go(this,
                                                                'affselecttype',
                                                                'affselecttypeverif',
                                                                '../AJAX/selecttypecritan.php?type=');"
    >
    et c'est la fonction go qui elle se charge de choisir les attributs dont elle à besoin.

    de puis peut j'utilise une autre méthode. dans le onload de ma page j'attache mes script aux objets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="type" id="selecttype">...
    dans le on load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    theselecttype = document.getElementById('selecttype');
    theselecttype.go = function () {...}
    theselecttype.onchange = 'this.go();'
    la methode go n'est plus une fonction mais une méthode du select lui même
    dans cette methode this est une référence au select tu à donc accès à tous ses attributs. il n'est pas necessaire de lui passer de paramettres, et jamais ni le select ni sa valeur.

    en faisant ainsi j'ai au final un code XHTML très propre (sans javascript)
    et de lautre coté un javascript orienté objet très clair.

    dans cette même approche
    j'ai un exemple http://www.developpez.net/forums/showthread.php?t=85603
    qui tuilise des attributs dans un formulaire pour attacher des méthode de vérification à un formulaire.

    pour finir attention au onchange sur les selects
    http://www.developpez.net/forums/showthread.php?t=70317

    A+JYT

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Death83
    Si vous voulez vous rendre compte par vous même regarder ce que ca donne juste avec ce code sous FF et IE.

    C'est quand même hallucinant que IE ne prennet pas en compte le this.value.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select onchange="alert(this.value);">
    	<option>1</option>
    	<option>2</option>
    	<option>3</option>
    	<option>4</option>
    	<option>5</option>
    </select>
    Sinon j'ai vérifier ca fait pareil avec onclick..., le problème viens vraiment du this.value
    l'erreur vient du fait que l'attribut value n'existe pas. Il faut également lui donner une valeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <select size="1" id="combo" onchange="alert(this.value)">
        <option value="valeur1">Option 1</option>
        <option value="valeur2">Option 2</option>
        <option value="valeur3">Option 3</option>
        <option value="valeur4">Option 4</option>
        <option value="valeur5">Option 5</option>
    </select>

  8. #8
    Membre éprouvé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Par défaut
    oki merci. donc il faut que je recopie tous les contenus des selects dans des values. Ceci dit, ça ne marche pas que pour IE.

  9. #9
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    salut.
    essaie de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value=valeur>valeur</option>
    je m'explique : sous ie y a des fois, il n'interprete pas bien les valeurs des options s'il n'y a pas la propriete value.
    pour tester tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onchange=alert(this.value)><option value=valeur1>valeur2</option><option value=valeur1>valeur3</option><option value=valeur1>valeur4</option></select>
    le alert t'afficheras... valeur1 !
    @+

    c vrai que auteur l'a dit, mais bon...
    n'oubliez pas le tag !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment corriger this.value undefined ?
    Par POKOU dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/06/2013, 22h45
  2. Réponses: 5
    Dernier message: 16/06/2012, 20h07
  3. Réponses: 3
    Dernier message: 31/01/2010, 14h10
  4. Connaitre la valeur d'un this.value avant l'appel de la fonction
    Par beegees dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/01/2009, 14h40
  5. This.value au lieu de document.getElementById('field').value
    Par yoyot dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/03/2005, 14h02

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