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 :

modifier le style ( couleur et bordure) d'un input text


Sujet :

JavaScript

  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 12
    Par défaut modifier le style ( couleur et bordure) d'un input text
    Bonsoir tout le monde,
    je suis débutante en javacript , et je cherche a modifier la couleur de background avec la bordure lorsque la valeur de cette input text égal a un texte précis et avec l’événement onload , j'esseye avec ce morceau de code mais en vain , je cherche maintenant ce qui de faute dedan merci d'avance pour votre aide

    NB :
    --script ----------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      <script type="text/javascript">
      window.onload = function() {
          changeC(){
          var Msg = document.getElementById ("Msg");  
          if (Msg.value=='Bien inséré !') {  
        	  document.getElementById("Msg").style.border = "2px solid #00FF00;"  ;
        	  document.getElementById("Msg").style.backgroundColor= "#00FF00;" ;
          }
        }  
      }
      </script>
    -- Body ----------
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <body onload="changeC();">
    ..
    <input type="text" style="border: 0;" name="Msg" id="Msg"  />

  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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    Plusieurs choses

    pas besoin de rappeler getElementById('Msg').

    pas de ; DANS les propriétés de style

    En JavaScript une fonction se déclare avec le mot clef function.

    Tu fais un window.onload et tu rappelles une fonction mal déclarée dans le onload du body ...


    Ensuite dans ta fonction tu testes le value de ton input qui n'en a pas !

    Et pour terminer si tu mets une bordure de la même couleur que le fond, tu risque de ne pas la voir ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     <script type="text/javascript">
     function changeC(){
     
          var Msg = document.getElementById ("Msg");  
          if (Msg.value=='Bien inséré !') {  
           Msg.style.border="2px solid #FF0000";
           Msg.style.backgroundColor= "#00FF00" ;
          }
        }  
    </script>

    ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <body onload="changeC();">
    <input type="text" style="border: 0;" name="Msg" id="Msg" value="Bien inséré !" />
    cf http://jsfiddle.net/vSWbR/2/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    A noter que c'est possible à réaliser en CSS:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #Msg[value='Bien inséré !']{
        border: 2px solid red;
        background-color: lime;
    }

    Mais cela ne fonctionnera que pour l'attribut value initial au chargement de la page. Pour dynamiser le style, on a besoin de Javascript. Comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById("Msg").addEventListener("change", function(){ this.setAttribute("value", this.value)                                                                                                                        });
    http://jsfiddle.net/vSWbR/3/

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Salut à tous,

    Je suis désolé de réouvrir un vieux post, mais je bloque (Noob en javascript et autre :/ )

    J'ai adapté le code ci-dessus pour en faire ceci :

    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
     
    var classautocalcule = document.getElementById ("classautocalcule");
    var classnonautocalcule = document.getElementById ("classnonautocalcule"); 
     
      if (classautocalcule.value == classnonautocalcule.value) { 
     
        classautocalcule.style.border="2px solid #00FF00";
        classnonautocalcule.style.border="2px solid #00FF00";
     
      }
      else {
     
        classautocalcule.style.border="2px solid #FF0000";
        classnonautocalcule.style.border="2px solid #FF0000";  
     
      }
     
    }  
     
    changeC()
    Seulement, ce n'est pas du ontime

    Une idée ?

    Merci d'avance

  5. #5
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    et elle sert à quoi la ligne 20 ? changeC().
    .
    .
    une traduction serait la bien venue, ainsi qu'une description du but à atteindre et son contexte
    Seulement, ce n'est pas du ontime

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    Hello,

    Peut-être pas à grand chose, mais c'est comme ça que c'était avant.

    J'ai un peu avancé, mais ça ne fonctionne toujours pas.

    En gros, j'ai plusieurs champs :

    Le premier est le montant.
    Puis j'ai une série de subdivisions qui doivent donner le même montant. (.fee)

    Le javascript fait donc la somme de tous les fees

    et si la somme est égal au montant repris dans le premier champs c'est ok --> vert si pas --> rouge

    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
     
    var $fees = $('.fee').change(function(){
      var total = 0;
      var classnonautocalcule = document.getElementById("classnonautocalcule").value;
     
      //iterate through all the fee elements and find the total
      $fees.each(function(){
    	total += (parseFloat($.trim(this.value)) ||0)
      })
      $('.classautocalcule').text( total.toFixed(2) );
     
      if(total == classnonautocalcule){ 
      $('.classautocalcule').style.border="2px solid #00FF00";
      }
      else{
      $('.classautocalcule').style.border="2px solid #FF0000";
     
       }
     
    });

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2013
    Messages : 7
    Par défaut
    J'y suis arrivé

    Merci

Discussions similaires

  1. Modifier la couleur de bordure d'une fenêtre WPF
    Par SandyF dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 21/09/2010, 18h29
  2. Réponses: 0
    Dernier message: 02/09/2009, 14h35
  3. Changer la couleur de la bordure d'un input text
    Par Gregory.M dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/10/2008, 17h18
  4. modifier la couleur de bordure d'une cellule
    Par lecaire dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/07/2008, 13h34
  5. Comment définir la couleur de bordure d'un champ text ?
    Par isack dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/12/2007, 16h59

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