begin process at 2012 05 29 03:11:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Classes

 > 

Appliquer un style uniforme à chaque champs de formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Appliquer un style uniforme à chaque champs de formulaire

dimanche 30 août 2009 à 16:28:24 | Appliquer un style uniforme à chaque champs de formulaire

ofillion

Bonjour,

Je suis vraiment dummy en JS et voici ce que j'aimerais arriver à faire. C'est probablement très simple pour vous.

Je voudrais qu'au chargement de ma page, un style soit appliqué à chacun des champs qui se trouvent sur ma page. Voici ce que j'ai fais à date mais cela ne fonctionne pas. J'aimerais savoir ce qui cloche!!

Mon CSS :

Code :

input {
border:1px solid #3C2D7D;
background-color:#A6BEDE;;
}

.fieldFocus {
border:1px solid red;
}

.fieldBlur {
border:input;

Vous avez compris que je veux une bordure rouge du champs sur focus et revenir à la normale à la sortie du champs.

Si j'inscris pour chacun de mes input :
Code HTML :

onFocus="javascript:this.className='fieldFocus';"
onBlur="javascript:this.className='fieldBlur';"

Ca fonctionne très bien. Par contre, je voudrais ne pas avoir à le faire pour chaque champs car j'ai ai beaucoup et si je décide de changer la couleur, ce sera la galère pour aller les modifier 1 à 1.

Ceci dit, j'ai créé un .js que je lis dans le head de ma page et je charge la fonction setFocusBlur() dans le onLoad du body mais ca fonctionne pas. Voici mon fichier .js :
Code Javascript :

function fieldFocus() {
this.className = "fieldFocus";
}
function fieldBlur() {
this.className = "fieldBlur";
}

function setFocusBlur() {
var field = document.getElementsByTagName('input');
for (var i = 0; i < field.length; i++){
field[i].focus = fieldFocus();
field[i].blur = fieldBlur();
}
}

Dans ma page, j'ai évidemment ajouté dans le tag body onLoad="setFocusBlur();" et je load mon fichier .js sans problème dans le head de ma page.
Pourriez-vous me dire qu'est-ce qui me manque??

De plus, j'aimerais ne pas limiter le style aux input mais bien à tous les éléments de formulaire... textarea etc... est-ce possible?

Merci beaucoup!

dimanche 30 août 2009 à 17:43:48 | Re : Appliquer un style uniforme à chaque champs de formulaire

Bul3

Membre Club


Bonjour,
si j'ai compris !
pas loin, pas loin :


<head>
<style>
.f { background-color:red; }
.b { background-color:green; }
</style>
</head>
<body>
<form name="frm">
<input type="text" name="t1" />
<input type="text" name="t2" />
</form>
<script>
for ( var n=0;n<document.frm.elements.length;n++)
{ document.frm.elements[n].className="b";
document.frm.elements[n].onfocus=function()
{ this.className="f"; }
document.frm.elements[n].onblur=function()
{ this.className="b"; }
}
</script>
</body>



reste à sélectionner les éléments.
regarder document.frm.elements[n].tagName
ou le name, ou l'id... ou... je ne sais quoi qui
permet de choisir ceux à modifier ;o)

Cordialement [mon Site] [M'écrire] Bul

lundi 31 août 2009 à 13:21:06 | Re : Appliquer un style uniforme à chaque champs de formulaire

ofillion

Ca fonctionne nickel... merci bul3!

Il ne me reste qu'à sélectionner les input, textarea et select car de cette façon, mes class s'appliquent aussi au formulaire en tant que tel.

J'ai essayé la suggestion : document.frm.elements[n].tagName mais je n'y arrive pas.

Quelqu'un aurait une solution pour limiter et appliquer les class seulement à mes champs de formulaires de type input, textarea et select???

Merci beaucoup!!

lundi 31 août 2009 à 13:34:23 | Re : Appliquer un style uniforme à chaque champs de formulaire

Bul3

Membre Club
Réponse acceptée !

même si cela ne résoudra pas tout, tagName
peut servir...
et....àa dépend de comment vous faites cela !!!

sur mon exemple :

for ( var n=0; n<document.frm.elements.length; n++ )
{ if ( document.frm.elements[n].tagName=="INPUT" || document.frm.elements[n].tagName=="TEXTAREA" )
{ document.frm.elements[n].className="b";
....




Cette discussion est classée dans : input, page, code, champs, js


Répondre à ce message

Sujets en rapport avec ce message

Récupérer valeur champs page fille vers champs page mère [ par kenny18 ] Toujours moi....!Je repose ma donnée d'une manière différente :j'ai un formulaire. Au lieu de mettre un input type "file", je mets un type "text" avec Afficher Masquer champs sur ev page précédente [ par fdthierry ] Bonjour à toutes et à tous,Tout d'abord Joyeux Noël à toutes et à tous Voici mon soucis:J'ai trouvé ce code qui me convient :http://www.javascriptfr.c Reload d'un .js toutes "x" secondes. [ par shadow125 ] Bonsoir à vous tous !Voila j'essaye de faire un petit script et j'ai besoin de le relancer toutes les 1secondes, sans recharger la page.J'ai trouvé co Application sur template de phpBB [ par MChauban ] Je développe une application PHP/HTML/AJAX en utilisant le framework de phpbb. Ce code fonctionne sur l'environnement de dév IE7 mais pas avec les aut commande javascript sur page de code .js [ par metal76 ] salut à tous, j'ai une page de code .js , mais je ne sais pas comment mettre un lien pour lancer une video présent dans mn bureau. Appel de plusieurs fonction JS avec windows.onload [ par frlobe ] Bonjour j'ai un script d'autocompletion en JS qui fonctionne très bien. Il s'appelle de cette façon: [code=js]{body} [/code] Et la fonction JS initial Code js dans une page html mis dans une page js [ par JLuc01 ] Bonjour a tous, Voila un petit code ci dessous que j'utilise et qui marche quand il est utilise dans une page HTML. Mais, si j'essaye de le mettre préchargement d'un gros PDF [ par JeanPP ] JeanPP Je sais le code pour précharger les images d'une page en affichant un message d'attente. Mais là je veux précharger un lourd fichier PDF en av Réccupérer le contenu d'un fichier dans un champs de formulaire HTML [ par chrysalis ] Bonjour, J'aimerai pouvoir récupérer le contenu d'un fichier (txt, js, ou peu importe) dans un champs texte d'un formulaire. Voici actuellement mon Probleme de suppression avec un input type [ par mageek06 ] Bonjour, j'ai ce code la : [code=js] <!-- function ajouter() { var input = document.getElementById('texte'); // on place dan


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,560 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales