Autor Zpráva
doominick
Profil *
<body>
<script type="text/javascript">
var form=document.createElement("form");
ir=document.createElement("input");
ir.setAttribute("type", "radio");
ir.setAttribute("name", "hity");
form.appendChild(ir);
document.getElementsByTagName("body")[0].appendChild(form);
</script>
</body>

Tohle je maximálně ořezaný formulář tvořený DOMem... jenže nechápu proč ale nefunguje mi v IE (verze 7), Firefox 2 a 3 a Opera 9 bez problému jedou to je celkem závažný problém, pořád je IE hodně rozšířený. Nevíte jaký to má důvod?
Mám ve scriptu nějakou chybu, nebo IE má nějaký nestandardní divný zápis input radia ?
Chamurappi
Profil
Reaguji na doominicka:
Upravuješ obsah elementu <body> v době, kdy ještě není zcela načten jeho HTML kód. Skript se totiž vykonává okamžitě. Pozdržíš-li jeho vykonání do doby, kdy bude <body> uzavřené, zbavíš se té hlášky, která tě trápí a kterou jsi nám pro jistotu zamlčel, abychom neměli řešení tvého problému tak jednoduché.

ir.setAttribute("type", "radio");
Proč nepoužíváš normální HTML DOM? Co je to za módu, že se poslední dobou kdekdo snaží nastavovat vlastnosti či události elementů přes metodu „setAttribute“?
srigi
Profil
Chamurappi

Nie je to moda. Take su tutorialy na CZ nete.
doominick
Profil *
Chamurappi
žádná hláška mě ani v jednom z těch 4 prohlížečů co jsem testoval netrápí, vím že body ještě nemusí být načtené ale funguje mi to takhle všude bez jakýchkoliv hlášek.
Ten problém co mě trápí a který jsem tu vlastně zapoměl zdůraznit (moc se omlouvám) je že vzniklé radi je v IE nezaškrtnutelné... prostě mám jen kolečko na ozdobu.
Pokud tedy existuje ještě jiný způsob jak radio vytvořit oceni bych radu.
Pavel W.
Profil *
Ještě můžeš použít document.write:
document.write("<input type='radio' />");
peta
Profil
doominick
jakkpsatweb - html - formulare - input type radio
A najdi si, ktery atribut meni radio na zaskrtnute a nezaskrtnute. to ti tam chybi, proto ti nezaskrtava.
Chamurappi
Profil
Reaguji na doominicka:
žádná hláška mě ani v jednom z těch 4 prohlížečů co jsem testoval netrápí
Ale trápila by tě v Explorerech, kdyby byla stránka delší.

Reaguji na Pavla W.:
Bez lomítka. V XHTML nefunguje metoda document.write.

Reaguji na peta:
Tazateli vadí, že je <input type="radio"> nezaškrtnutelný, nikoliv že by byl nezaškrtnutý.
doominick
Profil *
Pavel W.
Zajímavý tip ale v důsledku je to úplně stejné v IE radia vytvořená javascriptem nelze zaškrtnout jsou jaksi nefunkčtní
Chamurappi
Profil
Reaguji na doominicka:
document.write("<input type='radio' name='něco'>");
S vyplněným jménem funguje.
doominick
Profil *
Chamurappi
no to je paráda
ale stále nerozumím proč mi nefunguje úvdoní script
var form=document.createElement("form");
ir=document.createElement("input");
ir.setAttribute("type", "radio");
ir.setAttribute("name", "hity");
form.appendChild(ir);
document.getElementsByTagName("body")[0].appendChild(form);
vždyť tam name je a chová se to jako bez něj
Chamurappi
Profil
Reaguji na doominicka:
V Exploreru je chyba, viz komentář dole na MSDN. Bude opravena ve verzi 8.
doominick
Profil *
Chamurappi
díky moc
s řešením v tom komentáři už to jde snadno a funguje všude:
<body>
<script type="text/javascript">

var form=document.createElement("form");
try{
rdo = document.createElement('<input type="radio" name="fldID" />');
}catch(err){
rdo = document.createElement('input');
rdo.setAttribute('type','radio');
rdo.setAttribute('name','fldID');
}
form.appendChild(rdo);
document.getElementsByTagName("body")[0].appendChild(form);
</script>
</body>
Chamurappi
Profil
Reaguji na doominicka:
Jestli chceš formulářové prvky vyrobit ihned při načtení, použij raději ten document.write.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: