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 :

if (!= balise textarea)


Sujet :

JavaScript

  1. #1
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut if (!= balise textarea)
    Bonjour, je souhaite appliquer un bout de code a toute mes balise sauf a textarea, voila ce que j'ai essayée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (document.activeElement.tagName.toLowerCase() != "textarea") {
    }
    Pourquoi sa ne marche pas ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    Bonjour,

    Si tu ouvres une console (outil de développement) et que tu entres document.activeElement.tagName.toLowerCase() qu'est-ce que ça te retourne ?
    Logiquement, l'élément actif par défaut (body).
    Maintenant, dans le document, fait "tabulation" plusieurs fois, et entres de nouveau document.activeElement.tagName.toLowerCase() dans la console. Tu verras que l'élément actif aura changé.

    Ici donc tu tests un seul élément, et non tous les éléments de ton document. Ce n'est donc pas la bonne méthode.

    Des pistes, utilise des outils du DOM :
    - treeWalker
    - la famille des getElementXXX
    - fonction récursive utilisant firstChild / nextSibling
    - etc

    Il y a plein de façons de faire différentes, n'hésite pas à nous montrer comment tu t'en sors

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Existe t'il une autre solution plus simple dans ce cas ?, je ne voit pas en quoi tes liens peuvent m'aidée, merci quand même de ton aide.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben pour qu'on puisse t'aider, il faut nous aider à t'aider.

    Là, tu te contentes d'écrire un if susceptible d'être fonctionnel de surcroit sans qu'on sache dans quel contexte il est utilisé.
    Tel quel, on peut rien te dire. C'est à toi de nous donner suffisamment d'informations pour qu'on puisse savoir ce que tu veux faire, ce que tu as essayé de faire et pourquoi ça ne fonctionne pas.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Il s'agit de "désactiver" le clique droit (j' ai créer un menu perso en css) dans le cadre d'une application de glisser-déposer.

    Le problème c'est pour que ca marche faut désactiver le clique droit en js.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     function disableselect(e){
     return false
     }
     function reEnable(){
     return true
     }
     document.oncontextmenu=new Function ("return false")
    Mais ce code s'applique aux balises textarea (ce qui est gênant car elle n'on pas de menu perso en css, car elle n'en pas besoin...).

  6. #6
    Expert confirmé
    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 : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Voilà une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    document.oncontextmenu = function(event) {
       if ('TEXTAREA' !== event.target.tagName) {
          event.preventDefault();
       }
    }
    Cela dit, ce n'est pas parce que c'est possible qu'il faut le faire. Désactiver le menu contextuel est en général déconseillé, car cela restreint les fonctionnalités du navigateur, et les utilisateurs peuvent être agacés et ne pas avoir envie de revenir sur ton site. Il faut que tu aies vraiment une bonne raison de le faire.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Super merci, l'application est du style Google drive (quand vous faite un clique droit sur 1 fichiers), c'est pour désactiver le clique droit sur les bordures pour pas gêner l'utilisation.

    Pour ceux que sa intéresse j'ai aussi désactivée la touche backspace (sauf dans les balises textarea) pour éviter de faire précédent par accident et perdre tout ce que l'on a écrit...

    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
        $(document).keydown(function(e) {
            var doPrevent;
            if (e.keyCode == 8) {
                var d = e.srcElement || e.target;
                if (d.tagName.toUpperCase() == 'INPUT' || d.tagName.toUpperCase() == 'TEXTAREA') {
                    doPrevent = d.readOnly || d.disabled;
                }
                else
                    doPrevent = true;
            }
            else
                doPrevent = false;
     
            if (doPrevent)
                e.preventDefault();
        });

  8. #8
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    J'ai encore une question : pourquoi sa ne marche pas si je met Id au lieu de Name ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    document.oncontextmenu = function(event) {
       if ('monId' !== event.target.tagId) {
          event.preventDefault();
       }
    }

  9. #9
    Expert confirmé
    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 : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Je pense que tu cherches à utiliser id. Il y a trois propriétés différentes :
    • element.tagName correspond au nom de la balise
    • element.name correspond à l'attribut name quand il y en a un
    • element.id correspond à l'attribut id quand il y en a un
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  10. #10
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Billets dans le blog
    9
    Par défaut
    Oui, pourquoi sa ne marche ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     document.oncontextmenu = function(event) {
       if (('TEXTAREA' !== event.target.tagName) || ('monid' !== event.target.id)) {
          event.preventDefault();
       }
    Merci pour votre aide.

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

Discussions similaires

  1. Personnalisé une balise textarea
    Par Olivier Regnier dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/05/2008, 15h59
  2. Formulaire balise "textarea"
    Par waxouse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 22/08/2007, 11h10
  3. positionement texte dans la balise textarea
    Par mikado_O dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/07/2006, 07h37
  4. question sur la balise< textarea>
    Par marti dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/12/2005, 11h16
  5. [html] problème balise textarea
    Par mandaillou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 05/10/2005, 19h58

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