Autor Zpráva
SNowie
Profil *
mám možná drobný problém, ale nejsem ho schopen vyřešit

mám v javascriptu funkci barva(), která skrývá a zobrazuje cosi, to není důležité, každopádně je volána akcí onclick na radiobuttonu a teď k problému - pokud radiobuttony umístím mimo tag <form></form>, vše funguje jak má, avšak pokud je umístím uvnitř tagu, přestane skript fungovat

chyby jsou následující:

Internet explorer
Chyba: Objekt tuto vlastnost nebo metodu nepodporuje (a zvýrazní se použitý "onclick")

Opera

JavaScript - xxx
Event thread: click
Error:
Unhandled exception: [Object InternalException]
code: 6
message: WRONG_ARGUMENTS_ERR
Backtrace:
Line 1 of script
barva();
At unknown location
[statement source code not available]

Firefox

naprosto nesmyslně - chyba: barva is not a function (?!) na řádku 1 (?!)

vůbec nechápu jak z toho ven :( díky za pomoc
SNowie
Profil *
omlouvám se, jako rána z čistého nebe mě napadlo řešení a fungovalo, také jsem nenapsal zdroják (není to přesně on, jen taková vypreparovaná část)

<html>
<head>
<script type="text/javascript"><!--
function barvaj(){
var barva = document.getElementsByName('barva');
for(i=0;i<barva.length;i++){
var j = i + 1;
var velikost = document.getElementById('velikosti'+j);
if(barva[i].checked)
velikost.style.display = 'block';
else
velikost.style.display = 'none';
}
}
--></script>
</head>
<body>
<form>
<div id="velikosti1" style="display:block;">rozměry 1</div>
<div id="velikosti2" style="display:none;">rozměry 2</div>
<div id="velikosti3" style="display:none;">rozměry 3</div>
<input type="radio" name="barva" onclick="javascript:barvaj();"> první barva<br/>
<input type="radio" name="barva" onclick="javascript:barvaj();"> druhá barva<br/>
<input type="radio" name="barva" onclick="javascript:barvaj();"> třetí barva<br/>
</form>
</body>

když byla funkce v javascriptu pojmenována "barva" čili stejně jako název pole radiobuttonů, házelo to ve všech prohlížečích chyby, po změně názvu (na "barvaj") už vše v pořádku :)
SNowie
Profil *
samozřejmě i volání bylo změněno z "javascript:barva" na "javascript:barvaj", v tom chyba nebyla :)
Michal Till
Profil
Naucte se volat udalosti poradne, zpusob onclick="javascript:" je obludarium.

V jQuery (www.jquery.com) byste to udelal takto

$("input.barva").one("click",function() {
...obsah funkce barvaj...
});

Takto si nebudete prznit HTML javascriptem.
peta
Profil
SNowie
viz Michal Till onclick samo o sobe je udalost javascriptu, tudiz mozna z nejakeho hodne stareho prohlizece funguje i
onclick="javascript:barvaj();"
ale pochybuji, ze to neco jako Opera uznava, takze jen (a strednik nemusi byt u jednoho prikazu, vypada to hezci):
onclick="barvaj()"
Odkaz na soubor by pomohl, priste...
SNowie
Profil *
bere to IE, Firefox i Opera, ale bez javascript: to, pravda, vypadá lépe ... díky moc
Toto téma je uzamčeno. Odpověď nelze zaslat.