Onclick non appelé sous IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Onclick non appelé sous IE

par Vurtu » 25 août 2008, 11:14

J'ai trouvé la solution :)

Pour information, faut utiliser addEvent :)

par Vurtu » 24 août 2008, 01:05

Pour information, voici le code :

Code : Tout sélectionner

var personnalSelectOpenned = false; function replaceSelect() { var selectNum = 0; document.getElements('select').each(function(item, index) { parentNode = item.getParent(); // hidden input for sending hidden = new Element('input', { 'type': 'hidden', 'name': item.name, 'id': 'personnalSelectValue' + selectNum, 'value': item.value }); // list with dl, dt, dd, ul, li dl = new Element('dl', { 'class': 'select' }); dt = new Element('dt', { 'id': 'personnalSelectTitle'+ selectNum, 'onclick': 'personnalSelectShow('+ selectNum +'); return false;' }); dt.appendText(item.options[item.selectedIndex].text + " "); dd = new Element('dd', { 'id': 'personnalSelect' + selectNum }); ul = new Element('ul'); item.getElements('option').each(function(option, index) { li = new Element('li', { 'onclick': 'personnalSelectSetValue(this, '+ selectNum +', "'+ option.value +'");' }); li.appendText(option.text + ' '); ul.grab(li); }); dd.grab(ul); dl.grab(dt); dl.grab(dd); item.destroy(); parentNode.grab(hidden); parentNode.grab(dl); ++ selectNum; }); } function personnalSelectShow(id) { if ( personnalSelectOpenned ) personnalSelectShow(personnalSelectOpenned); id = 'personnalSelect' + id; if ( $(id).getStyle('display') == 'none' ) { $(id).setStyle('display', 'block'); personnalSelectOpenned = id; } else { $(id).setStyle('display', 'none'); personnalSelectOpenned = false; } } function personnalSelectSetValue(li, id, value) { $('personnalSelectTitle'+ id).innerHTML = li.innerHTML; $('personnalSelectValue'+ id).value = value; personnalSelectShow(id); } window.addEvent('domready', function() { replaceSelect(); });

Ca se passe à la création du dt ...

Code : Tout sélectionner

'onclick': 'personnalSelectShow('+ selectNum +'); return false;'
J'ai essayé différente méthodes, rien n'y fait ...

Je voulais essayer ta méthode, mais je n'ai pas compris comment passer les arguments à ma fonction ...

par Victor BRITO » 24 août 2008, 00:48

Ce serait mieux si tu indiquais le code JavaScript que tu as pondu.

Si jamais tu as employé la méthode addEventListener (), sache qu'elle n'est pas comprise par IE 7 et versions antérieures ; pour IE, tu as la méthode attachEvent (), qui est semblable à la première, à ceci près qu'elle ne permet pas de gérer la propagation d'événement.

Autrement dit :

Code : Tout sélectionner

function taFonction () { // ... } // Ajout d'un événement (exemple) var tonElement = document.getElementById ('id-de-l-element-recevant-l-evenement'); if (tonElement.addEventListener) tonElement.addEventListener ('click', taFonction, false); else if (tonElement.attachEvent) tonElement.attachEvent ('onclick", taFonction); /* l'else qui suit peut être omis, la plupart des navigateurs courants comprenant l'une des deux méthodes ci-dessus */ else tonElement.onclick = taFonction;

Onclick non appelé sous IE

par Vurtu » 23 août 2008, 23:27

Bonjour tout le monde,

J'ai un soucis avec IE 7 ...
J'ai codé un petit script à l'aide de mootools pour remplacer à la volée les select par un champ caché, et un "select personnalisé" afin de pouvoir appliquer des styles personnalisés sans contraintes.

Par contre, mon onclick ne fonctionne pas ...
je ne comprends pas. sous firefox c'est bon, mais pas IE

Si vous pouvez me donner un coup de main ...
Le tout est visible ici : http://muggle-cms.org/select/

Merci d'avance