ďťż
Podstrony
|
telcocafeWitam serdecznie!Oto, co chcę zrobić, a, niestety, muszę w Javascript: pragnę wykonać ćwiczenia do pewnego kursu; rzecz w tym, że pól formularza jest dość dużo, tj. średnio około 80. Zrobiłem to już, ale przycisk typu "submit" usuwa wszystkie dane po kliknięciu. Przydałaby się też coś takiego, by po kliknięciu na "sprawdź!" tła pól z błędnymi wartościami zmieniały kolor np. na czerwony. Oto fragment tablicy: hasla=new Array(); hasla[1] = 'lachon'; hasla[2] = 'lachach'; hasla[3] = 'lacha'; hasla[4] = 'lacham'; hasla[5] = 'lachach'; hasla[6] = 'lachar'; hasla[7] = 'płonąć'; hasla[8] = 'annon'; hasla[9] = 'annach'; A oto, ee... funkcja sprawdzająca. Rzecz jasna najlepsza byłaby pętla, ale jej nie potrafiłem poprawnie wykonać... punkty = 0; function sprawdz() { if (document.form.elements[1].value == hasla[2]) {punkty = punkty + 1} if (document.form.elements[2].value == hasla[3]) {punkty = punkty + 1} if (document.form.elements[3].value == hasla[4]) {punkty = punkty + 1} if (document.form.elements[4].value == hasla[5]) {punkty = punkty + 1} if (document.form.elements[5].value == hasla[6]) {punkty = punkty + 1} if (document.form.elements[6].value == hasla[7]) {punkty = punkty + 1} if (document.form.elements[7].value == hasla[8]) {punkty = punkty + 1} if (document.form.elements[8].value == hasla[9]) {punkty = punkty + 1} Nie wiem czemu, ale ten kod działą poprawnie dla tych pól, wszystkich poza pierwszym... <form name="form"> <ol><p>A. Odmień poniższe czasowniki i przetłumacz je:</p> <table border="1"> <tr> <td>czasow.</td> <td>I sg.</td> <td>II sg</td> <td>III sg.</td> <td>I pl.</td> <td>II pl.</td> <td>III pl.</td> <td>znaczenie</td> </tr> <tr> <td>lacha-</td> <td><input class="pole" type="text" name="1" size="5" /></td> <td><input class="pole" type="text" name="2" size="5" /></td> <td><input class="pole" type="text" name="3" size="5" /></td> <td><input class="pole" type="text" name="4" size="5" /></td> <td><input class="pole" type="text" name="5" size="5" /></td> <td><input class="pole" type="text" name="6" size="5" /></td> <td><input class="pole" type="text" name="7" /></td> </tr> <tr> <td>anna-</td> <td><input class="pole" type="text" name="8" size="5" /></td> <td><input class="pole" type="text" name="9" size="5" /></td> <td><input class="pole" type="text" name="10" size="5" /></td> <td><input class="pole" type="text" name="11" size="5" /></td> <td><input class="pole" type="text" name="12" size="5" /></td> <td><input class="pole" type="text" name="13" size="5" /></td> <td><input class="pole" type="text" name="14" /></td> </tr> .... <input type="submit" value="Sprawdź!" onclick="sprawdz()" /> Bo po ustawieniu "buttona" program tylko po każdorazowym kliknięciu dodaje punkty... Przepraszam, to strasznie lamerskie, ale jakoś muszę zacząć... Javascript nie znam w pełni, ale w innych językach programowania pierwszy element tablicy ma numer 0 więc document.form.elements[0].value to będzie pierwszy element Elementy tablicy zaczynają się od indeksu 0. No to pętla winna wyglądać tak: function sprawdz() { for (i=0; i<document.form.elements.length; i++) { if (document.form.elements[i].value == hasla[i]) punkty += 1; } } Przykładowy warunek dla zmiany koloru tła, gdy indeks 0 tablicy jest pusty: if (document.form.elements[0].value == "") pole.style.background="red"; // przykładowe pole tekstowe: <body> <input name="pole" type="text" /> </body> |
|||
Sitedesign by AltusUmbrae. |