Domů > javascript > Input checkbox v Firefoxu, Opeře a v IE

Input checkbox v Firefoxu, Opeře a v IE

Nedávno jsem řešil celkem jednoduchou věc, ve formuláři byl checkbox, který při změně měl část formuláře schovat.

...
<input type="checkbox" onChange="zmen()" />
...

Celkem triviální s tím rozdílem, že to nefunguje v Internet Exploreru (zkoušel jsem IE7). Prostudoval jsem na MSDN dokumentaci a tam jsem se dočel, že metodu onChange sice IE podporuje, ale jen pro type=’text’.

...
<input type="checkbox" onClick="zmen()" />
...

Tak jsem si řekl, že metodu onChange nahradím onClick a mám vyhráno, ale ouvej, to zase nefungovalo ve Firefoxu a Opeře. Proto detekuji IE a podle toho Smarty rozhodí možnost na onChange nebo onClick. Osobně si myslím, že onChange je logická, netuším proč v IE podpora chybí.

// Detekce IE
$ie = strpos($_SERVER["HTTP_USER_AGENT"], 'MSIE') ? true : false;
$ie = strpos($_SERVER["HTTP_USER_AGENT"], 'Opera') ? false : $ie;

if($ie)
{
$smarty->assign('ie', true);
}
else
{
$smarty->assign('ie', false);
}
Categories: javascript Tags: , , , ,
  • abtris
    Fires late on a readio/checkbox button | Modified on 1/28/2008 4:04 PM by John Sudds - MSFT
    If you use onchange on a radio or checkbox button, the onchange event will not fire until you "blur" the element.

    Težko jsem mohl 7.11.2007 vyčíst tento potřebný komentář ;-)
  • zsery
    Doporučuji lépe přečíst MSDN:
    http://msdn.microsoft.com/en-us/library/ms53691...
    onchange je podporován, ale implementace vyvolání je jiné než u např. firefoxu.
blog comments powered by Disqus

Switch to our mobile site