Changer des propriétés

Signaler
Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

Voila j'ai un formulaire avec des champs qui ressemble a ca
  <label for= "qf_a29936">Envoie un mail aux responsables après la validation du formulaire public</label>  

Et pour en faire des infos bulles je pensair faire tout simplement :

<script language="javascript" type="text/javascript">
function initForm(){
    var labels=document.getElementsByTagName('label');
    for(i=0;i<labels.length; i++){
        labels[i].className='info';
        content=labels[i].innerHTML;
        labels[i].innerHTML='&nbsp;';
       
//Jusque la ca marche
        labels[i].onMouseOver ='alert("ok")';
    }
}
initForm();
</script>

Le seul probleme c'est que le onMouseOvern'est pas ajouté et donc pas reconnu et aucun evenement, j'ai ensuite essayé sur un onclick de la checkbox meme resultat..

A l'aide.....Je vais m'arracher les cheveux !!

13 réponses

Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1
EUREKA

labels[i].innerHTML='[# &nbsp;]';
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
Salut,

Ou alors :

function click() {
    alert('ok');
}

labels[i].onMouseOver = click;
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
ou  labels[i].onMouseOver=function()    { alert("ok")'; }<hr />
Cordialement                Bul         [mon Site]     [M'écrire]<hr />En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
' en trop... il fallait lire :


labels[i].onMouseOver=function()    { alert("ok"); }
la solution que je préfère car on peut y passer des paramètres.



<hr />




Cordialement                Bul     [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
Salut,

Tiens d'ailleurs, bultez tant que t'es là :

Comment on peut lui passer un paramètre à la fonction ? Du style :
labels[i].onMouseOver=function()    { i = i + 1; alert(i); }
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
ah ben... pas comme ça 

    (     enfin je ne sais pas, c'est à creuser !
            et j'aimerai bien savoir aussi !
            j'ai eu ce souci, et j'ai du résoudre "autrement"     )

mais :

labels[i].onMouseOver= function()    { alert( this.innerHTML ); }   // par exemple

    parce qu'effectivement



labels[i].onMouseOver =function()    { alert(i); }
    va donner le "dernier i".






<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
euh, finalement en te relisant... ce que tu fais baigne !
mais je voulais utiliser l'indice donné dans l'appel et non pas
créer une variable globale !

<form name="frm">
   
   
</form>
<script>
    var i=0;
    for ( var n=0;n<document.frm.t.length;n++)
    {    document.frm.t[n].onmouseover=function() {    i++; alert(n+"\t"+i);    }
    }
</script>

mais ce serait plus class, et c'était là mon interrogation,
    d'utiliser directement n ( ici )

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]
<hr />

En général, c'est absurde de généraliser.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
Salut,

Bultez : c'est justement ce que je cherche à faire (appeler une fonction dans une boucle) ! :( Tu as une solution ?

Car j'ai un formulaire avec une table contenant une bonne centaine de DIV, et à chacun, j'affiche un combo lors d'un click sur la cellule de la table.

Le problème c'est que la page HTML pèse lourd du coup (la répétition des onclick="function(3, 4);" ca fait pas mal d'octets pour rien au final !
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
   
document.frm.t[n].onmouseover=function() {    fonction_commune(paramètres...);   }
    c'est ce que tu veux ? j'ai compris ? ou je suis totalement à coté de mes pompes ?
    mais avec l'indice ou l'index (n),  je ne sais pas faire,
        je vais poser la question dans ce forum, c'est fait pour ça malgré tout.


<hr />




Cordialement                Bul         [mon Site]     [M'écrire]
<hr />


En général, c'est absurde de généraliser.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
Salut,

Te prends pas la tête, je vais ouvrir un nouveau topic, mais sinon, oui c'est à peu près ce que je veux obtenir : j'ai un tableau à deux dimension qui doit afficher un combo. Au départ, je mettais le combo directement dans chaque cellule de la table, je montais à 1 Mo environ pour la page !!! Je te dis pas le temps de chargement !

Du coup, j'ai fait différement : j'ai mis juste un DIV pour chaque cellule, et je n'affiche le combo que lors du clic dans la cellule : je suis descendu à 300 Ko pour ma page, ce qui est encore assez gros !

Du coup, j'avais pensé définir l'évenement onclick en dynamique, et non plus en static pour y gagner encore quelques Ko !

Et du coup, je cherche un truc du genre :
for (var i = 0; i < 100; i++) {
    for (var j = 0; j < 100; j++) {
       document.getElementById('cell' + i + '_' + j).onmouseover = function() {
             click(i, j);
          }
    }
}

mais comme tu le fais remarquer, la fonction click est bien déclenchée lors du click sur la cellule, mais avec pour indice : 100, 100 !
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
PetoleTeam a parfaitement répondu a la question.        c'est ici Darksidious
<hr />



Cordialement            Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
121
Salut,

Tiens je connaissait pas cette propriété Index ! Merci beaucoup !

______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
moi non plus.  ce n'est pas une "propriété"
    tu peux mettre toto. ça baigne     ;-)
et le merci c'est à PetOleTeam qu'on le doit.
<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.