Bonjour tout le monde,
Voilà un bon petit moment que je cherche un moyen compatible de modifier l'événement onClick d'un input en javascript
J'ai suivi l'exemple de la FAQ, mais cela ne marche pas dans mon cas, alors j'appelle au secours
Dans un 1er temps, je suis passé par un setAttribute('onClick', mafonction)
Ceci fonctionne très bien sur firefox, mais génère une erreur sur IE
Cet objet ne gère pas cette propriété ou cette méthode
J'ai donc essayé d'acceder directement à l'objet onclick comme expliqué dans la FAQ.
Cela ne marchait pas, alors j'ai directement copier l'exemple de la FAQ dans mon code.
aInputs[j].onclick=function(){alert(blabla)};
Voici mon code, en fait, je cherche tous les inputs text compris dans une ligne de tableau, et je souhaite modifier leur événement onClick
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
aTds=aTable[0].getElementsByTagName('td');
for (var i=0; i<aTds.length;i++)
{
var strNewIdOnGoing=""
var aInputs=aTds[i].getElementsByTagName('input');
if(aInputs.length>0)
{
for(var j=0; j<aInputs.length;j++)
{
if(aInputs[j].type=='text')
{
if(intRowCounter==0)
strInputIdCreatedByDefault=aInputs[j].getAttribute('id');
//alert(strIdOnGoing);
strNewIdOnGoing=strInputIdCreatedByDefault + '_' + intRowCounter
aInputs[j].setAttribute('id', strNewIdOnGoing)
}
if(aInputs[j].type=='button')
{
strOnClick = aInputs[j].getAttribute('onClick');
//alert(strInputIdCreatedByDefault + ' ||||| ' + strNewIdOnGoing);
//Sous mozilla, ça fonctionne bien avec setAttribute
// si on fait .onclick, le onclick du dom est modifié, mais quand on affiche le source on voit qu'il n'y est pas
// Sous IE , setAttribute et onclick génèrent une erreur
strOnClick = strOnClick.replace(strInputIdCreatedByDefault,strNewIdOnGoing);
//aInputs[j].setAttribute('onclick', strOnClick);
//La ligne ci dessous ne fait rien sous firefox, et génère une erreur sous IE
aInputs[j].onclick=function(){alert(blabla)};
}
}
}
} |
Auriez-vous une idée ?
Merci bien !
@+.
Partager