Autor Zpráva
cllater
Profil *
kdyz dynamicky tvorim checkboxy tak je overuju takto:

function kontrola() {
var prvky = document.myform.elements;
var pocet = prvky.length;
var i;
for (i=0;i<pocet;i++) {
if (prvky[i].type=="checkbox" && prvky[i].checked) {
return true;
}
}
alert("Žádný checkbox není zaškrtnut.")
return false;
} 


problem je ze ja mam nekolik <p></p> ve kterych mam checkboxy a "var pocet = prvky.length;" mi vraci jak chapu vsechny checkboxy z formulare a ja nejake kategorie checkboxu chci testovat a nejake ne. Nevite jak udelat, aby mi to spoctlo jen pocet checkboxu v urcitem <p></p>?
zvěřiňák
Profil *
Třeba takhle:
<p id="prvni"></p>

A potom:
var prvky = document.getElementById("prvni").elements;
Chamurappi
Profil
Reaguji na cllatera:
var prvky = document.getElementById("ídéčko").getElementsByTagName("input");
— To vybere všechny <input>y, nikoliv všechny formulářové prvky, ale zajímají-li tě jen zaškrtávátka, vyjde to nastejno.


Reaguji na zvěřiňáka:
Jak jsi přišel na to, že odstavec má také vlastnost „elements“? Nemá ji, nikdy neměl, nikde. Není důvod.
cllater
Profil *
jenze zase tu je jeden problem ze kdyz to tam vkladam dynamicky tak nevim jake idecka chci kotrolovat. kdyz vkladam prvky napr id1, id2, id3, a reknu si ze chci kontrolovat id1 nebo id3 muzu to menit tak jak to pak udelat? napadlo me to jedine dat ty co chi kontrolovat do nejake class="kontroluj" ale pro tridu uz nevim jak to mam udelat. i kdybych vyuzil Jquery a kotroloval to podle tridy tak nemam jak spocitat prvky protoze me to veme vsechny prvky ze vcsech nekolikrat vlozenych trid "kotroluj" nenapada vas nejake reseni?

diky
Chamurappi
Profil
Reaguji na cllatera:
kdyz to tam vkladam dynamicky tak nevim jake idecka chci kotrolovat
1) Tam nemusí být id, už tu máš po ruce metodu, která vyhledá všechny elementy jménem „input“ umístěné v něčem, jistě tě napadne, že stejným způsobem můžeš vyhledat i všechny odstavce umístěné ve formuláři, vzít si třeba první z nich a vyhledat zaškrtávátka v něm.
2) Ídéčko můžeš předávat jako argument té kontrolující funkci, ne?

Docela by mě zajímalo, co vlastně tvoříš. Respektive, co zde my pod tvým vedením tvoříme :-)
Pokud nejsi jen zvídavý začátečník, nebylo by pro tvé dílo lepší, kdyby sis rovnou sehnal na JavaScript někoho zkušenějšího?
cllater
Profil *
tvotrim neco jako form builder. chci na to pouzit javascript a jquery. funguje me to tak ze klikam na tlacitka co znazornuji formularove prvky a ty se me pridavaji do html documentu a zaroven se mi jednotlive prvky ukladaji do hlavniho objektu FORM. tehle objekt pak ulozim v JSON formatu do souboru. v JSON je vlastne cely muj objekt, podle ktereho dokazu zpetne vygenerovat formular. tohle uz bych castecne mel. Ted to jen nejak osetrit o to, ze kdyz si zvolim ze nektery prvek musi byt vyplnen tak abych na ten dany input nebo neco zavolal kotrolni script. Jak to pozoruji tak to nebude tak jednoduche. Ano jsem zacatecnik, udelat ten builder je muj cil na kterem se chci hodne naucit.
nestorko
Profil *
<script type="text/javascript" language="JavaScript">
<!--
function prezrietBoxi(form) {
	if (
	form.box_1.checked == false &&
	form.box_2.checked == false &&
	form.box_3.checked == false)  
	{
		alert ('Prosím vyberte si zložku, do ktorej chcete súbor nahrať!');
		return false;
	} else { 	
		return true;
	}
}
//-->
</script> 

<form name="upload" enctype="multipart/form-data" action="" method="post" onsubmit="return prezrietBoxi(this);">
<input type="hidden" name="MAX_FILE_SIZE" value="15728640" />

<input type="radio" id="box_1" name="..BOX.." value="tvoj_text" checked /> DIR_1
<input type="radio" id="box_2" name="..BOX.." value="tvoj_text" /> DIR_2
<input type="radio" id="box_3" name="..BOX.." value="tvoj_text" /> DIR_3

<input name="uploaded_file" type="file" id="file" size="47" />
<input type="submit" name="submit" value="Upload" /> 

</form>

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: