$form->addElement('radio','one','e.','Otros','e.Otros', array('onclick="trans(this.id, \'one_otros\')"', 'onblur="trans(this.id, \'one_otros\')"'));
Comme vous le voyez, j'essaye de déclencher la fonction trans onclick et onblur.<input onclick="trans(this.id, 'one_otros')"="onclick="trans(this.id, 'one_otros')"" onblur="trans(this.id, 'one_otros')"="onblur="trans(this.id, 'one_otros')"" name="one" value="e.Otros" type="radio" id="qf_2c618f" />
L'événement onlick fonctionne, mais pas le onblur. Voyez vous pourquoi le code généré est mal formé?
$form->addElement('text','one_otros','', 'id="one_otros"');
et dans un fichier javascript inclus:
window.document.getElementById("one_otros").onfocus = alert("bonjour");
window.document.getElementById("one_otros").onblur = alert("aurevoir");
Le alert('bonjour') fonctionne une fois au chargement, de la page et ensuite plus de réaction du champ, ni onclick, ni onblur.
$form->addElement('radio','one','e.','Otros','e.Otros', array(
'onclick' => 'trans(this.id, \'one_otros\')',
'onblur' => 'trans(this.id, \'one_otros\')'
));Code : Tout sélectionner
if (element.attachEvent) {
element.attachEvent("onclick", function() {alert("click")});
}
if (element.addEventListener) {
element.addEventListener("click", function() {alert("click")});
}$form->addElement('radio','one','e.','Otros','e.Otros', array('onclick' => 'trans(this.id, \'one_otros\')', 'onblur' => 'trans(this.id, \'one_otros\')'));
$form->addElement('text','one_otros','', 'id="one_otros"');
Quand onclick, trans() doit être déclenché, onblur aussi.function trans (id1, id2)
{
if (window.document.getElementById(id1).checked == false)
{
window.document.getElementById(id2).style.display="none";
}
if (window.document.getElementById(id1).checked == true)
{
window.document.getElementById(id2).style.display="block";
}
}
Au chargement de la page (onload) mon champ de texte est masqué par défaut.