Autor | Zpráva | ||
---|---|---|---|
Bildr Profil |
#1 · Zasláno: 30. 5. 2008, 09:54:47
Zdravím, nikdy jsem v JS netvořil a narazil jsem na problém, který bez něj asi nevyřeším. Chvíli jsem zkoušel něco patlat z ukázkových zdojáků, ale nefuní to. Jde o to, že návštěvník má k dispozici nějakou skupinu formulářů, kterými postupně prochází (navazují na sebe), ale měl by mít nějaký časový limit na vyplnění (a to všech formulářů dohromady). Má idea byla asi taková, že na prvním formuláři bych si do hidden pole schoval čas v sekundách, který by uživatel měl na ono výše zmíněné vyplnění. Při odeslání by se pak tato hodnota postupně předávala z formuláře na formulář, ale zároveň by se i každou vteřinu dekrementovala o jedničku a pokud by jeho hodnota byla nulová nebo záporná, tak by otevřela stránka s vyhodnocením.
Toto jsem zplodil během svého prvního javascriptového pokusu <span id="deadlineshow"></span> <script> function deadline(){ var SecCounter = document.getElementById('deadlinedata'); SecCounter.value() = SecCounter.value()-1; var aktualniCas = "Zbývá " + SecCounter.value() + " vteřin"; window.document.getElementById("deadlineshow").innerHTML = aktualniCas; if(SecCounter.value() <= 0) // odeslat k vyhodnocení } deadline(); window.setInterval("deadline()", 1000); </script> <form id="form"> <input type="hidden" id="deadlinedata" name="deadlinedata" value="100"> <input type="submit" id="submit" name="submit" value="Odeslat"> </form> Mohl by mi někdo poradit, proč se to nedekrementuje a dále jak otevřít při vypršení počítadla stránku s vyhodnocením? (potřebná data budou v cookies). |
||
peta Profil |
#2 · Zasláno: 30. 5. 2008, 11:33:26
"proč se to nedekrementuje" ?
SecCounter.value() = SecCounter.value()-1; ... protoze je to tam nastavene, akorat je to chybne zapsane, takze se to asi nedekrementuje jakpsatweb - javascript - priklady - formulare "jak otevřít při vypršení počítadla stránku s vyhodnocením" if(SecCounter.value() <= 0) // odeslat k vyhodnocení { nejaka funkce pro otevreni} jestlize to bude v action toho romulare, tak by stacilo document.getElementById('form').submit() jinak ta funkce by musela byt presmerovani window.location.href jakpsatweb - javascript - objekt window |
||
Mike8748 Profil |
#3 · Zasláno: 30. 5. 2008, 14:56:31
SecCounter.value neni funkce ale promena, takze tam nemaj ty zavorky co delat
|
||
Bildr Profil |
#4 · Zasláno: 31. 5. 2008, 09:37:18
Díky za rady. Takže jsem upravil zdrojak, z metody je proměnná (nebo jak tomu u JS říkáte), ale stále to jednak neodpočítává druhak se sestavený string nezobrazuje ve spanu. Takže současná verze vypadá takto:
<span id="deadlineshow"></span> <script> function deadline(){ var SecCounter = document.getElementById("deadlinedata"); SecCounter.value = SecCounter.value-1; var aktualniCas = "Zbývá " + SecCounter.value() + " vteřin"; window.document.getElementById("deadlineshow").innerHTML = aktualniCas; } deadline(); window.setInterval("deadline()", 1000); </script> <form id="form"> <input type="text" id="deadlinedata" name="deadlinedata" value="100"> <input type="submit" id="submit" name="submit" value="Odeslat"> </form> Nevidíte v tom někdo ještě krpu? |
||
Bildr Profil |
#5 · Zasláno: 31. 5. 2008, 09:39:30
oprava 3. řádku fce
var aktualniCas = "Zbývá " + SecCounter.value + " vteřin"; zkopíroval jsem špatnou verzi |
||
Časová prodleva: 11 dní
|
|||
Bildr Profil |
#6 · Zasláno: 11. 6. 2008, 13:37:49
Třeba se někomu bude hodit zdroják:
<script> function decrement() { --window.document.otazka.pocitadlo.value; var stav = window.document.otazka.pocitadlo.value; if(stav <= 0) { window.document.getElementById("cas").innerHTML = "Čas vypršel!"; window.document.getElementById("otazka").submit(); } else if(stav <= 59) { window.document.getElementById("cas").innerHTML = "Zbývá " + stav + " vteřin."; } else if(stav <= 239) { stav /= 60; window.document.getElementById("cas").innerHTML = "Zbývají " + parseInt(stav+1) + " minuty."; } else { stav /= 60; window.document.getElementById("cas").innerHTML = "Zbývá " + parseInt(stav+1) + " minut."; } } window.setTimeout("decrement()", 0); window.setInterval("decrement()", 1000); </script> <span id="cas"></span> <form name="otazka" id="otazka" action="cil.html"> <input type="hidden" name="pocitadlo" value="250"> </form> |
||
Časová prodleva: 16 let
|
0