Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Samoczynne wysłanie formularza.
Forum PHP.pl > Forum > Przedszkole
szczabik
Jak mogę samoczynne wysłać formularz po np. 3 s napisałem taki kod ale nie działa. Może ktoś podpowiedzieć jak to zrobić ?
  1. <script language='JavaScript'>
  2. function test() {
  3. var form = document.getElementById("dodaj");
  4. form.sumbit();
  5. }
  6. setTimeout(test, 3000);
  7.  
  8. <form name="test" method="post" action="dodaj.html">
  9. <input type="submit" id="dodaj" name="submit" value="Wyslij"/>
  10. </form>
kamil4u
Nadaj id <form> i wtedy podmień document.getElementById("dodaj"); na document.getElementById("xxxxxxxx"); i cały kod JS daj 'pod' HTML
szczabik
Zrobilem tak nie działa. Wczesniej też tak próbowałem i nie działa.
  1. <script language='JavaScript'>
  2. function test() {
  3. var form = document.getElementById("dodaj");
  4. sumbit.form;
  5. }
  6. setTimeout(test, 3000);
  7.  
  8. <form name="test" id="dodaj" method="post" action="dodaj.html">
  9. <input type="submit" name="submit" value="Wyslij"/>
  10. </form>
  11.  
  12. </body>
  13. </html>
kamil4u
W między czasie wyedytowałem: daj kod JS pod HTML lub zainteresuj się zdarzeniem load w JS(szukaj pod onLoad)
szczabik
No ja wiem do czego jest onLoad ale nie chce odrazu przy ładowaniu strony wysłać formularz tylko po jakimś czasie np. po 30 s
piotrooo89
Cytat
No ja wiem do czego jest onLoad ale nie chce odrazu przy ładowaniu strony wysłać formularz tylko po jakimś czasie np. po 30 s



i właśnie dlatego używasz setTimeout
kamil4u
Poczytaj o DOM. W Twoim kodzie chcesz pobrać element, którego jeszcze nie ma w drzewie DOM. Daj kod JS pod HTML(to najprostszy sposób)
szczabik
To czemu jak robie tak nie działa
  1. <script language='JavaScript'>
  2. function test() {
  3. formularz.submit();
  4. }
  5. setTimeout(test, 3000);
  6.  
  7. <form name="formularz" id="dodaj" method="post" action="dodaj.html">
  8. <input type="submit" name="submit" value="Wyslij"/>
  9. </form>


?
kamil4u
Nie napisze za Ciebie kodu - 3 razy napisałem Ci co masz zrobić. Tak trudno to zrobić? W ostatnim poście napisałem o czym powinieneś sobie poczytać - czytaj ze zrozumieniem!!!

Jak nie rozumiesz to przeczytaj to 10 razy, a jak dalej nie rozumiesz to napisz czego konkretnie!
szczabik
Cytat(kamil4u @ 22.04.2009, 20:11:45 ) *
Nie napisze za Ciebie kodu - 3 razy napisałem Ci co masz zrobić. Tak trudno to zrobić? W ostatnim poście napisałem o czym powinieneś sobie poczytać - czytaj ze zrozumieniem!!!

Jak nie rozumiesz to przeczytaj to 10 razy, a jak dalej nie rozumiesz to napisz czego konkretnie!

Jak masz tak pomagać i pisać to nie pisz wcale. Dziękuje ci za taką pomoc chciałem wskazówkę a nie piszesz mi poczytaj o DOM.
kamil4u
Cytat
Dziękuje ci za taką pomoc chciałem wskazówkę a nie piszesz mi poczytaj o DOM.

Zastanów się co Ty piszesz: "chciałem wskazówkę"-->"poczytaj o DOM" to jest właśnie wskazówka. Poza tym to:
Cytat
Daj kod JS pod HTML
napisałem Ci 3 razy, a Ty nawet nie sprawdziłeś tego. Nacz się wreszcie czytać ze zrozumieniem, a jak Ci to nie wychodzi to daruj sobie programowanie...
szczabik
Przeczytałem klika razy o DOM i wiem do czego służy document.getElementById ale jaktoś tutaj nie umiem tego wykorzystać a co do "Daj kod JS pod HTML" to nie wiem o co chodzi kod html jest w body.
kamil4u
Daj wszystko co masz pomiędzy <script>i</script> (razem ze znacznikami) pod HTML, czyli pod
Kod
<form name="formularz" id="dodaj" method="post" action="dodaj.html">
<input type="submit" name="submit" value="Wyslij"/>
</form>


Jak chcesz tak będzie - to mój ostatni post w tym temacie.

PS. I od razu widać, że nie czytałeś o DOM.
osl
oj, chyba jeszcze raz musisz przeczytać o DOM winksmiley.jpg
obrazowo: przeglądarka laduje powiedzmy po lini html-a (uproszczenie, poważne). Widzi skrypt, zaczyna go przerabiać. W środku są odwolania do jakichś elementów, ale ich jeszcze nie ma "fizycznie" w przeglądarce, bo nie przerobiła lini poniżej skryptu... może teraz odrobine jaśniej? smile.gif

jak dasz tag <script> poniżej kodu formy to powinno być cacy. a jeszcze lepiej jak wrzucisz to do document.body.onload


EDIT: no i kamil4u mnie ubiegł smile.gif
nospor
panowie z calym szacunkiem ale pieprzycie glupoty winksmiley.jpg

funkcja sie nie wykonuje bo setTimeout() jest źle. powinno byc:
Kod
setTimeout('test()', 3000);

teraz po 3 sekundach wejdzie do tej funkcji i pobierze forma ktory juz w DOM jest.
oczywiscie form sie nie wysle bo ta wysylka tez jest skopana, ale to juz wam pozostawiam winksmiley.jpg
osl
oj, jak się człowiek śpieszy to się zasugeruje jeszcze wcześniejszymi postami winksmiley.jpg
sorry wielkie za wtope/wprowadzanie w bląd.

(gwoli ścislości, 3 sekundy to może być czasem mało żeby załadować cale drzewo DOM. zwłaszcza dla IE6 winksmiley.jpg - testowane osobiście. )
szczabik
Zrobilem tak jak piszecie i mimo to nie dziala
  1. </head>
  2. <form name="formularz" id="dodaj" method="post" action="dodaj.html">
  3. <input type="submit" name="submit" value="Wyslij"/>
  4. </form>
  5. <script language='JavaScript'>
  6. function test() {
  7. var form = document.getElementById("dodaj");
  8. form.submit();
  9. }
  10. setTimeout('test()', 3000);
  11. </body>
  12. </html>
piotrooo89
chłopaki wprowadzacie w błąd:

  1. <script type="text/javascript">
  2. function formSubmit()
  3. {
  4. setTimeout('document.getElementById("myForm").submit()', 3000);
  5. }
  6.  
  7. <form id="myForm" action="" method="get">
  8. <input type="text" name="test" />
  9. <input type="button" onclick="formSubmit()" value="ok">
  10. </form>
szczabik
Cytat(piotrooo89 @ 22.04.2009, 21:00:49 ) *
chłopaki wprowadzacie w błąd:

  1. <script type="text/javascript">
  2. function formSubmit()
  3. {
  4. setTimeout('document.getElementById("myForm").submit()', 3000);
  5. }
  6.  
  7. <form id="myForm" action="" method="get">
  8. <input type="text" name="test" />
  9. <input type="button" onclick="formSubmit()" value="ok">
  10. </form>


Nie działa mijają 3 sekundy i nic sie nie dzieje formularz sie nie wysyła
piotrooo89
Cytat
Nie działa mijają 3 sekundy i nic sie nie dzieje formularz sie nie wysyła


najwyraźniej u Ciebie u mnie wszystko OK>
nospor
@piotrooo89 przeciez twoj skrypt wysle forma po 3 sekundach ale dopiero po kliknieciu....
piotrooo89
Cytat(nospor @ 22.04.2009, 21:09:45 ) *
@piotrooo89 przeciez twoj skrypt wysle forma po 3 sekundach ale dopiero po kliknieciu....


a nie tak miało być? sciana.gif
szczabik
No twój kod działą jak klikne ok ale czemu jak dam tak to juz nie działa
  1. <script type="text/javascript">
  2. function formSubmit()
  3. {
  4. document.getElementById("myForm").submit();
  5. }
  6. setTimeout('test()', 3000);
  7.  
  8. <form name="formularz" id="myForm" method="post" action="dodaj.html">
  9. <input type="submit" name="submit" value="Wyslij"/>
  10. </form>


Chce zrobić by wysłał sie samo czynie bez klikania.
osl
taka moja mała sugestia, bo aż sam sobie przykład przerobiłem - usuń nazwę submita albo nazwij go inaczej.
Firebug pluje, że form.submit() nie jest funkcją - traktuje go jako inputa właśnie winksmiley.jpg
piotrooo89
Cytat(szczabik @ 22.04.2009, 21:11:32 ) *
Chce zrobić by wysłał sie samo czynie bez klikania.


dajesz window.onload.

  1. <script type="text/javascript">
  2. function formSubmit()
  3. {
  4. setTimeout('document.getElementById("myForm").submit()', 3000);
  5. }
  6. window.onload=formSubmit;
  7.  
  8. <form id="myForm" action="" method="get">
  9. <input type="text" name="test" />
  10. <input type="button" onclick="formSubmit()" value="ok">
  11. </form>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.