Aller au contenu

Sujets conseillés

Posté

Salut !

Je suis encore dans les prémices de l'apprentissage du javascript...

Car oui, pour le Javascript comme pour le reste, je préfère tout faire moi-même (bon, j'avoue, le drag'n drop c'est pas pour demain...)

J'ai plein de champs 'input' sur une page, et j'aimerais presque tous les cacher (à condition que le javascript soit activé sur la machine)...

J'aurais bien aimé faire un :

 <input type="text" name="blabla58" onload="this.style.display='none'" size="2" maxlength="1">

Mais apparamment, ça ne marche pas pour les input...

Comment faire ? Help.

Posté

Je pense qu'il est préférable d'utiliser cette solution : http://forum.alsacreations.com/topic-5-193...ml.html#p146404

Entre tes balises <head></head> (ou un fichier javascript externe)

function addEvent(oElem, sEvType, fn, bCapture)

{

return oElem.addEventListener?

oElem.addEventListener(sEvType, fn, bCapture):

oElem.attachEvent?

oElem.attachEvent('on' + sEvType, fn):

oElem['on' + sEvType] = fn;

}

function MasquerElements() {
window.document.getElement('input1').style.display = 'none';
}

addEvent(window, 'load', MasquerElements, false);

En modifiant ton formulaire :

<input id="input1" type="text" name="blabla58" onload="this.style.display='none'" size="2" maxlength="1">

Un début de solution à optimiser. ;o)

Posté

Le seul problème, c'est que je ne connais pas la gueule a priori de l'id et du name de mes éléments... C'est pour ça que j'aimerais directement appliquer une fonction sur eux, en utilisant le "this", pour éviter de stocker tous les noms de mes champs...

En gros, j'ai moultes champs, qui peuvent prendre environ 2000 valeurs différentes de name, et j'ai pas envie de toutes les essayer ni de stocker en JS celles que j'utilise.

Mais vu que j'ai une connaissance réduite du JS, je pense qu'il y a moyen de passer outre et de faire autrement, mais je sais pas comment :P

Posté

Tu mets un id sur ton <form> et dans la fonction tu utilises :

function MasquerElements() {

for(var i=0;i<window.document.getElement('form').length;i++) {

if(window.document.getElement('form').elements[i].className == 'invisible' )
window.document.getElement('form').elements[i].style.display = 'none';

}

}

Et tu ajoutes sur tes champs à cacher : class="invisible".

Posté

Hum, j'ai réussi à trouver plus simple finalement, ouf !

Elle est donnée dans un autre sujet du Hub en plus, que Google m'a trouvé :P

C'est toi qui m'a donné l'idée, avec ta class !

J'ai trouvé un membre qui cherchait un GetElementByClass qui n'existait pas...

Mais est donnée la solution :

for (i=0; i<document.getElementsByTagName("*").length; i++) {
if (document.getElementsByTagName("*").item(i).className == "nomdelaclasse"){
document.getElementsByTagName("*").item(i).style.display="none";
}
}

Merci à toi, et indirectement aux autres de l'autre sujet ;)

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...