Autor Zpráva
logic
Profil *
Mám formulář s výpisem zpráv a je tam tento kód:
function sel() {
    with(document.form) {
        for(i=0;i<elements.length;i++) {
            thiselm = elements[i];
            if(thiselm.name.substring(0,3) == 'del')
                thiselm.checked = !thiselm.checked
        }
    }
}
A když kliknu na tlačítko pro výběr všech checkboxů tak se nic nestane a ve firebugu mám hlášku:

elements is not defined:
for(i=0;i<elements.length;i++) {

Na jiné stránce, ale je něco podobného a tam je tento kód, který funguje:
http://paste.ofcode.org/nN2ijGpxjjwd4ABRCsHmLj

Zkoušel jsem taky připojit k té nefunkční stránce tu drouhou funkci z jiné stránky, ale to nepomohlo (ani to moc nedává smysl). Já nerozumím tomu jak a kde se to elements má nastavovat. Nikde v html žádný další elements nevidím a ani v dalších scriptech (ajax a menu) to není).

Jak tuto věc opravit. A druhotný dotaz - nebylo by kratší a jednodušší udělat to v JQUERY a jestli jo, tak jak?
Chamurappi
Profil
Reaguji na logice:
Má formulář name="form"? Voláš funkci sel až poté, co tento formulář existuje?

nebylo by kratší a jednodušší udělat to v JQUERY
Kratší po připočtení stokilového skriptu by to nebylo.
Jak vypadá tvé HTML?
pako
Profil *
Skus pouzit document.forms['nazov formulara']. S mensimi upravami nemusis pouzivat ani with.
logic
Profil *
Chamurappi:
Ten 100kb script by se ale načítal ze servu jquery... ne?

http://jsfiddle.net/eD4VL/

Asi bude problém v tom, že tam jsou dva formuláře a nemají jméno. Jedná se mi o ten první formulář, a pod ním je druhý.


Teď to píše hlášku: document.form

Ještě upřesním, že ten script se nachází v části za hlavičkou stránky, ne přímo na začátku, jestli to může mít vliv.


document.form is undefined


Tedy po aktualizaci:
http://jsfiddle.net/eD4VL/2/
doplnil jsem jména formulářů form1 a form2 a do js jsem doplnil název ['form1']
ale mě to nefunguje


Už jsem to opravil :-) document.forms['1']

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:

0