Autor Zpráva
ondra_85
Profil
<input type="checkbox" name="okynko[1]">
<input type="checkbox" name="okynko[2]">
<input type="checkbox" name="okynko[3]">
...

<input type="button" value="Vyplnit"  onclick="???">


Dodneška jsem s javascriptem nepracoval a potřebuju nutně pomoc. Mám několik checkboxů v poli a potřebuju je zaškrtnout kliknutím na tlačítko. Co mám napsat do "onclick"? Díky mockrát,

Ondra
Nox
Profil
Tákže předně doplň idčka, můžou být stejný jako namy...a pak jedna z možností:

do onclicku...shrnul bych to do funkce, třeba CheckniVse()

a v JS pak

function CheckniVse(){
for(a=1;a<=3;a++){ document.getElementById("okynko["+a+"]").checked="checked"; }
}
los
Profil *
Alebo bez dopĺňania id:
onclick="selectAll(this.form)"


A v JavaScripte nejako takto:
function selectAll(form) {
  for (var i = 0, checkbox; checkbox = form["okynko[" + i + "]"]; ++i)
    checkbox.checked = true;
}
ondra_85
Profil
Díky moc za pomoc. Budu se muset ten javascript konečně naučit :-)
Nox
Profil
los
To vypadá kvalitněji:)
HGD
Profil
Navázáno na téma „zaškrtnutí všech“.


Tak jsem to zkoušel nacpat do svího scriptu, a zaboha se mi to nepohne :(
<script language="JavaScript" type="text/javascript">
function selectAll(form){
  for (var i=0, checkbox; checkbox = form["itemId["+i+"]"]; ++i)
    checkbox.checked = true;
}
</script>

<input type="checkbox" name="itemId" value="2" onClick="selectAll(this.form)">

a pak v cyklu:
<input type="checkbox" name="itemId['.$data['id'].']" value="'.$data['id'].'">
los
Profil *
Ten skript prechádza elementy s menom itemId[0]..itemId[n], pričom sa zastaví pri prvom itemId[i], ktoré nie je definované. Takže ak nejaký index chýba, tak to ďalej nepokračuje.

Môžeš to upraviť napr. takto (netestované):
function selectAll(form) {
  for (var i = 0; i < form.elements.length; ++i)
    if (form.elements[i].type == "checkbox" && form.elements[i].name.substr(0, 7) == "itemId[")
      form.elements[i].checked = true;
}
HGD
Profil
zejtra zkusim, zatim dík ;)
Str4wberry
Profil
Odpovídám HGD:
Kdysi dávno jsem to řešil takto:
function selectAll(action, id)	{
	inputs = document.getElementById(id).getElementsByTagName("input");
	for (var i = 0; i < inputs.length; ++i)	{
			inputs[i].checked = (action == 1)? true:false;
	}
}
Když bude action rovna jedné, bude se zaškrtávat (jinak odškrtávat), id je id obalu, ve kterém jsou <input type='checkbox'>.
peta
Profil
HGD
"akorát newim co v tej knize mam hledat ?"
Uz jsem to psal, slovo / funkci selInvert. Ta funguje podobne, jeno oznacene odznaci a naopak. Funkce je prave skryta, protoze script, ktery ji vyuziva je pristupny jen pro admina (a tam jsem to smazal, myslim)
HGD
Profil
Když bude action rovna jedné

A čim mam nstavit aby byla 1 ?
Str4wberry
Profil
Reakce na HGD:
Zkus na to přijít sám. Podívej se na volání a parametry té funkce, potom by Ti to mělo dojít.
HGD
Profil
no když to mam takle:
<input type="checkbox" name="itemId" value="2" onClick="selectAll(action, vypis)">


tak by tam asi mělo bejt vybrání tohodletoho checkboxu, ale jak ? já už sem z toho neštastnej :'(
Str4wberry
Profil
Odpovídám HGD:
onClick="selectAll(1, 'id obalu')"
HGD
Profil
this.checked místo "1" a jede to :)
Já to tam měl, ale neměl sem tam apostrofy, mockrát díky ;)
1ight
Profil
Dobrý den řeším jeden a ten samý problém jen trošku jinam mam neutralní checkbox který zaškrtnu a tím zaškrtnu všechny nebo odškrtnu a odškrtnu všechny tento skript funguje jen nevim jak do nej přidelat to aby fungovalo name="Check[]"

Ja do javascriptu moc nevidím i když je to podobný, zkoušel jsem tam pedelavat to field[i].name na field[i].name[] nebo field[i].name[i] a nebehá, kamarad do js taky nevidí jestli by se tu našel nekdo ochotnej
děkuji, jinak to funguje skvěle tak to mužete použít.
function checkAll(field) {
    if (field.CheckAll.checked == true) {
      for (i = 0; i < field.length; i++) {
        if (field[i].name == "Check") {
          field[i].checked = true;
        }
      }
    } else {
      for (i = 0; i < field.length; i++) {
        if (field[i].name == "Check") {
          field[i].checked = false;
        }
      }
    }
  }

<input type="checkbox" class="mailcheckbox" name="Check[]" id="Check" value="' . $val->msgno . '">
los
Profil *
function checkAll(el) {
	for (var i = 0, els = document.getElementsByName("Check[]"); els[i]; ++i)
		els[i].checked = el.checked;
}


Dúfam, že nenastavuješ viacerým prvkom rovnaký identifikátor id=Check, lebo na prvý pohľad by sa mohlo zdať, že áno.
1ight
Profil
LOS:

Supr díky moc pomohl jsi mi tím příkladem co jsi sem poslal.... už to běhá jak ma vzal jsem si příklad s toho co jsi sem poslal z toho kodu == "Check") na == "Check[]") a běhá to mockrát fakt díky. Ono jak neznam ten js tak tam v něm bloudím jak opilej :) takhle to běhá uplně supr ..

PS: v tom kodu co jsi poslal nebo upravil ono to jen odoznačuje položky... neumí to udělat inverz označovaní všech položek. Tím mojim to děla oboje jen doufam že to bude fungoval ve všech prohlížečích.. Fakt díky za ty zavorky a nakopnutí

function checkAll(field) {
if (field.CheckAll.checked == true) {
for (i = 0; i < field.length; i++) {
if (field[i].name == "Check[]") {
field[i].checked = true;
}
}
} else {
for (i = 0; i < field.length; i++) {
if (field[i].name == "Check[]") {
field[i].checked = false;
}
}
}
}
los
Profil *
V tom, čo som poslal naposledy, bol prvý argument checkbox, nie formulár, t.j. v HTML by malo byť onclick="checkAll(this)".

Tvoj kód sa dá ešte zjednodušiť:
function checkAll(field) {
  for (i = 0; i < field.length; i++)
    if (field[i].name == "Check[]")
      field[i].checked = field.CheckAll.checked;
}
Leo
Profil
Pripadne getElementsByName? Leo

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0