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 :

Remettre la balise select à son premier item


Sujet :

JavaScript

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut Remettre la balise select à son premier item
    Bonjour a tous

    comment fait -on pour remettre une balise select a son premier item après avoir sélectionner
    je m'explique
    j'ai une balise select avec item de 1 a 30 l'item 0 est "grosseur du trait"
    quand je sélectionne un item j'appelle la fonction "borduresize" cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function borduresize(siz){
    if (actifelem.className=="divint"){actifelem.style.borderWidth=siz+"px";}
    }
    //ICI JE VOUDRAIS REMETTRE L'ITEM DE DEBUT UI EST LE TITRE EN FAIT 
     
    //document.getElementById("bordzize").value="grosseur du trait"//fonctionne pas
    merci pour les retours

  2. #2
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    selectedIndex ...

    -1 pour supprimer la séléction, tu peux aussi mettre un value -1 à la première option

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    merci spacefrog
    mais visiblement il y a quelque chose que je ne pige pas
    ca c'est la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /////////////////////////////////////////////////////////////////////////////////
    function borduresize(siz){
    //alert(actifelem);// le message me donne bien l'object htmlelemnt donc il est bien capté
    try{
      actifelem.style.borderwidth=siz+"px";
    }
    catch (e) {alert("vous devez d'abords sélectionner un div a l'intérieur de l'éditeur ");};
    }
    document.getElementById("bordzize").selectedIndex=-1
    /////////////////////////////////////////////////////////////////////////////////
    active element est déterminé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    document.addEventListener('mousedown',Mdown,false);// directement a l'ouverture du document en début de script
     
    ////////////////////////////////////////////////////////////////////////////////////////////
    function Mdown(){
    if (document.activeElement.className=="divint"){actifelem=document.activeElement;}
    /// d'autre élément ici plus tard
    }
    //////////////////////////////////////////////////////////////////////////////////////////////
    la ligne selectedindex me genere une erreur directement a l'ouverture du document
    impossible de definir la propriété "selectedindex" d'une reference nul ou non definie
    code 0
    je pige vraiment pas

  4. #4
    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
    Peut-être parce que l’instruction est en-dehors de la fonction borduresize ?
    Utilise un formateur automatique (par exemple sous Firefox, Maj+F4, coller le code puis Ctrl+P) et tu verras mieux.
    Aussi, active l’indentation automatique dans ton éditeur de texte. S’il ne fait pas ça, change d’éditeur de texte.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re Bonjour Watilin

    hoh!! puré tu a raison et donc la ligne s'exécutait au démarrage sauf a ce moment la la combo n'existe pas hihihihi


    je code avec Notepad !!!!

    j'ai bien Notepad + mais il fou le bordel dans d'autre application j'ai jamais découvert pourquoi

    dans cette version de la fonction j'ai le bon résultat mais j'ai quand même le message de demande de sélection du div il y a donc une erreur quelque part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    /////////////////////////////////////////////////////////////////////////////////
    function borduresize(siz){
    //alert(actifelem.outerHTML);
       try {
              if (siz !="grosseur du trait")
                        {
                        if (actifelem.className=="divint"){actifelem.style.borderWidth=siz+"px";}
                       document.getElementById("bordzize").selectedIndex=-1
                       }
              }
    catch (e) {alert("vous devez d'abords selectionner un div a l'interieur de l'editeur ");};
    }
    /////////////////////////////////////////////////////////////////////////////////
    Nom : demo2.gif
Affichages : 118
Taille : 340,6 Ko

  6. #6
    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
    Quand tu interceptes une erreur avec try/catch, tu dois l’afficher à la main, sinon elle est ignorée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ////////////////////////////////////////////////////////////////////////
    function borduresize(siz) {
      // alert(actifelem.outerHTML);
      try {
         ...
      }
      catch (e) {
        alert('vous devez d’abord sélectionner un div à l’interieur de l’éditeur');
        console.error(e);
      };
    }
    ////////////////////////////////////////////////////////////////////////
    Ouvre la console du panneau F12 pour voir le message d’erreur. J’imagine que ça va avoir un rapport avec actifElem, et il faudra chercher la cause du problème dans une autre partie du code.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    non Watilin ca n'a rien a voir avec actifelem car il est bien identifié si il est mémorisé puisque mon bordurage fonctionne

    c'est bien la ligne selectedindex qui fou le boxon quand je l'enleve tout est nickel

    alors avec console.error(e) dans ie c'est bon si j'enlève la ligne selectedindex par contre dans le HTA maintenant c'est"e" qui est "undefined" hihihihihi
    je vais quand même vérifier F12

  8. #8
    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
    Je me sens bizarrement « colonialiste » en te disant ça, mais je ne comprends vraiment pas l’environnement dans lequel tu travailles. Des pages HTA, un éditeur de texte pour ainsi dire austère, pas de console… Tout ça m’a l’air de méchamment manquer de bonnes conditions, tu ne penses pas ?

    Edit : je reconnais que je fais preuve d’un peu de mauvaise foi pour les HTA, c’est une contrainte du cahier des charges, il faut faire avec.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    perso je me débrouille mieux avec notepad que Notepad ++ mais bon c'est pas grave il y a F12

    je vais laisser tomber la balise select car visiblement il y a quelque chose que hta n'aime pas tant pis je passe au input type range a la place

    je code avec mes deux ecran bien allumé sur l'un note pad sur l'autre F12 je vois les effets en temps reel avec un fichier HTML

    et ben maintenant c'est une autre bizarrerie et ca n'a rien a voir avec l'éditeur de code que j'utilise

    cette fois avec IE j'ai un imput range accompagné de son Label for je me suis dis chouette on slide et avec la valeur de l'input je bordure
    et ben je te le donne dans le mille je suis arrêté depuis plus d'une heure a chercher a comprendre pourquoi dans mon div je ne vois pas le label
    pourtant dans l'arborescence je l'ai bien a sa place
    un truc de fou ce machin

    Nom : Capture.JPG
Affichages : 100
Taille : 158,2 Ko
    allez dis moi ce que cela peut bien être

  10. #10
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    selectedIndex = 0 => premier élement
    ou value=-1

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour spacefrog
    oui j'ai bien compris cela mais l'erreur qui se produit est que l'object lui même n'est pas trouvé alors qu'il est bien présent dans le document puisque la fonction elle même est appelée par cette liste hihihihi

    depuis hier soir je découvre plein d'aberrations sur ces points

    une liste qui n'existe pas alors que c'est elle même qui lance la fonction avec son évènement change
    un label FOR que l'on ne voit pas quand il est ajouté dynamiquement ,le même écrit en dur dans le code se voit
    etc......
    bref
    je vais remplacer cette liste par deux bouton (+/-) ou un input range si j'arrive a faire apparaitre ce satané label et voila je vais plomber sur ca pendant 3 jours

  12. #12
    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
    Là comme ça on n’a pas un extrait de code suffisant pour comprendre ce qui se passe. J’imagine que les choses ont pas mal changé depuis le dernier de tes sujets sur lequel je suis intervenu ; et je ne suis pas censé supposer qu’il s’agit du même projet.

    Je voudrais que tu essayes de réécrire la fonction borduresize en la rendant lexicalement indépendante, c’est-à-dire qu’elle ne doit pas faire de référence à des variables qui lui sont extérieures, toutes les données nécessaires doivent lui être passées en paramètre.
    Fais attention à l’indentation – si tu ne [vp]eux pas utiliser Firefox, il y a des outils en ligne comme jsbeautifier.org.

    Concernant l’éditeur de texte, j’ai quand même beaucoup de mal à croire qu’on parle du même, le vieux notepad.exe, qui…
    • ne fait pas de coloration syntaxique,
    • pas d’indentation automatique,
    • ni aucune autre forme d’assistance à l’écriture de code,
    • n’affiche pas les numéros de ligne,
    • ne laisse pas le choix du format des fins de lignes,
    • nous complique inutilement la vie quand on veut enregistrer un fichier qui n’a pas d’extension ou dont le nom commence par un point,
    • etc.


    Je te conseille de jeter un œil, quand tu auras le temps, à Brackets ou Atom, pas parce que ces deux-là en particulier sont « mieux » que d’autres (je ne veux pas déclencher de guerre de religions) mais parce qu’ils me viennent à l’esprit sur le moment. Tu pourrais y trouver un confort d’utilisation qui te correspond.

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonsoir Watilin
    oui le sujet que tu connais en fait en quelque sorte partie sauf que je gère tout par JavaScript
    tout sera dans le hta /html/activXwebbrowser dans userform excel vba)
    avant il n'y avait que les fonctions moteur
    donc pour la rendre lexicalement indépendante je vois pas trop il y a juste actifelem qui est déterminé par :le drag d'un div ou l'ajout d'un div ou le double clique sur un div qui se trouve a l'intérieur du content éditable et dont la classe est "divint"
    après pour la liste la je comprends vraiment pas pourquoi j'ai ce bug puisque bug il y a donc la balise select appelle bien la fonction par son évènement change
    je n'ai pas le message outerHTML j'ai le message du catch c'est donc bien l'élément bordzize qui est en question
    donc résultat la bordure se modifie bien mais le message catch vient toujours que j'ai sélectionner ou pas quand je suis en html
    mais quand je suis sur HTA j'ai un message d'erreur "e" non defini ou null

    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
    /////////////////////////////////////////////////////////////////////////////////
    function borduresize(siz)
     {
    //alert(actifelem.outerHTML);// lui ici c'est bon j'ai bien un div de class"divint"
        try
        {
         if (siz !="grosseur du trait")
           {
           if (actifelem.className=="divint"){actifelem.style.borderWidth=siz+"px";}
           alert(document.getElementById("bordzize").outerhtml);
           }
        }
         catch (e) {alert("vous devez d'abords sélectionner un div a l'intérieur de l'éditeur ");};
         console.error(e)
    }
    /////////////////////////////////////////////////////////////////////////////////

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bon ben du coup je m'y suis coller et j'ai résolu mon soucis
    j'envoie plus la valeur de la liste mais ma liste elle meme
    "siz" deviens la balise dans la fonction
    et je fait un
    siz.selectedIndex="-1";

    et voila je vais tester dans le html mais normalement il ne devrait plus y avoir de soucis
    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
    /////////////////////////////////////////////////////////////////////////////////
    function borduresize(siz)
     {
        try
        {
         if (siz.value !="grosseur du trait")
           {
           if (actifelem.className=="divint"){actifelem.style.borderWidth=siz.value+"px";}
          siz.selectedIndex="-1";
           }
        }
         catch (e) {alert("vous devez d'abords sélectionner un div a l'intérieur de l'éditeur ");};
         //console.error(e)
    }
    /////////////////////////////////////////////////////////////////////////////////
    Merci Watilin et a tous

  15. #15
    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
    Citation Envoyé par patricktoulon Voir le message
    donc pour la rendre lexicalement indépendante je vois pas trop
    Simplement en passant actifelem en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function borduresize(siz, actifelem)
    {
      ...
    }
     
    // au moment de l’appel
    borduresize( ... , actifelem);
    À moins que…
    À moins que tu n’appelles ta fonction depuis un attribut HTML (quand un personnage fait ça dans un film, tu peux être sûr qu’il va crever dans les dix premières minutes), auquel cas on va simplement laisser tomber.

    Je ne sais pas si on va avoir besoin de ça finalement ou pas, disons juste que ça peut rendre certaines choses plus simples.

    je n'ai pas le message outerHTML
    Souviens-toi que JavaScript est sensible à la casse : outerHTML marche, outerhtml ne marche pas.

    mais quand je suis sur HTA j'ai un message d'erreur "e" non defini ou null
    Même cause même punition : tu as fermé une accolade trop tôt, ce qui a repoussé le console.log en-dehors du catch. Quand je te dis d’utiliser une indentation automatique, c’est pas juste pour faire du vent

    Je commençais à me demander si le HTA n’était pas incapable de gérer correctement un try/catch

    Edit: j’avais pas vu ta réponse

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

Discussions similaires

  1. Balise <select> et espaces
    Par Gamdwin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/06/2005, 15h28
  2. [débutant] select du premier record.
    Par Anonymous dans le forum Langage SQL
    Réponses: 5
    Dernier message: 25/06/2004, 09h17
  3. Réponses: 4
    Dernier message: 18/11/2003, 16h08
  4. selection selon premier caractere d un champ
    Par jack-daniel dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/08/2003, 12h25

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