Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] pytanie o alternatywe submit button
Forum PHP.pl > Forum > Po stronie przeglądarki
soska66
mam taki kod

  1. <tr>
  2. <td class="righttext">Pass</td>
  3. <td><input class="formbits" type="password" name="passwd" size="12"></td>
  4. <td><img src="/images/go2.gif" alt="&gt;&gt;" width="18" height="15" border="0" onClick="memberLogin(document.sideloginform)"></td>
  5. </tr>


Jest to oczywiscie czesc formy, z tym ze jak widac wcisniecie przycisku nie wywoluje javascriptowej funkcji submit, a inna, stworzona na potrzeby strony funkcje. Problem polega na tym, ze w tej sytuacji, button nie reaguje na ENTER. Trzeba go kliknac

Pytanie, czy da sie to jakos obejsc. Zalezy mi na tym, zeby wcisniecie buttona wywolywalo funkcje memberLogin. Moze wstawic submit button z 'onclick' i podstawic obrazek w tlo (stylem) ?

Prosze o sugestie
nospor
wywal tego onclick, a funkcje dodaj na onsubmit w formi:
  1. <form onsubmit="memberLogin(document.sideloginform);">
  2. ....
  3. </form>


ta funkcja cos powiina zwracac, true lub false i powiino byc tak:
  1. <form onsubmit="return memberLogin(document.sideloginform);">
  2. ....
  3. </form>
soska66
hmm

no nie wiem gdzie mam blad, nie reaguje wogole na ENTER

  1. <form name="sideloginform" id="sideloginform" action="/validate.php" method="post" onSubmit="memberLogin(document.sideloginform);">
  2. <table border="0" cellspacing="0" cellpadding="2" style="margin: 8px; font-size: 1em;">
  3. <tr>
  4. <td class="righttext">Email</td>
  5. <td><input class="formbits" type="text" name="email" size="12"></td>
  6. <td></td>
  7. </tr>
  8. <tr>
  9. <td class="righttext">Pass</td>
  10. <td><input class="formbits" type="password" name="passwd" size="12"></td>
  11. <td><img src="/images/go2.gif" alt="&gt;&gt;" width="18" height="15" border="0" onClick="document.sideloginform.submit();"></td>
  12. </tr>
  13. <tr>
  14. <td colspan="3">
  15. <a class="reg" href="java script:reminder(document.sideloginform)">Forgot Password?</a>
  16. <a class="reg" href="/?action=newprofile">Register</a>
  17. </td>
  18. </tr>
  19. </table>
  20. </form>
JaRoPHP
Formularz ma reagować na przycisk ENTER?
To potrzebujesz jednak pola <input type="submit"... />.

EDIT: A resztę napisał @nospor.
soska66
nie jest potrzebny... Jesli dodajesz onclick z wywolaniem funkcji document.submit powinien reagowac

ponizszy przyklad dziala (reaguje na enter) bez problemu

  1. <form method="post" action="/home.php" name="searchform" id="searchform">
  2. <input type="hidden" name="action" value="search">
  3. <table border="0" cellspacing="2" cellpadding="0" >
  4. <tr>
  5. <td><input class="formbits" type="text" name="terms" size="20"></td><td><img src="/images/go.gif" alt="&gt;&gt;" width="18" height="15" border="0" onClick="document.searchform.submit();"></td>
  6. </tr>
  7. </form>
JaRoPHP
Cytat(soska66 @ 1.12.2006, 13:17:31 ) *
nie jest potrzebny... Jesli dodajesz onclick z wywolaniem funkcji document.submit powinien reagowac

Racja, powinien reagować. Za wprowadzenie w błąd sorki...
soska66
no za cholere nie moge znalezc roznicy pomiedzy dzialaniem tych dwoch kodow co wkleilem. Drugi reaguje na eneter bez problemu. Pierwszy reaguje tylko na klikniecie, co swiadczy ze nie ma bledu w kodzie onclick
JaRoPHP
Aby formularz reagował na przycisk ENTER, to albo musi mieć <input type="sumbit" />, albo przycisk (ew. obrazek), w którym przypisujesz onclick="document.submit()".
Ten submit musi się gdzieś pojawić (w pierwszym przypadku u Ciebie @soska66 go nie było, dlatego nie było również reakcji na ENTER).
soska66
Jak to nie ma smile.gif

  1. <td><img src="/images/go2.gif" alt="&gt;&gt;" width="18" height="15" border="0" onClick="document.sideloginform.submit();"></td>
JaRoPHP
Fragment pierwszego kodu:
  1. <td><img src="/images/go2.gif" alt=">>" width="18" height="15" border="0" onClick="memberLogin(document.sideloginform)"></td>

Fragment drugiego kodu:
  1. <td><img src="/images/go2.gif" alt=">>" width="18" height="15" border="0" onClick="document.sideloginform.submit();"></td>


Dopiero w drugim masz document.submit(), i ten reaguje na ENTER. W pierwszym nie ma submitu() (co widać na załączonym obrazku smile.gif), i nie ma reakcji.
soska66
nie no zaraz.... czy ja gdzies napisalem ze ten drugi reaguje? Wlasnie nie, i w tym problem... Ten 'drugi' kod z submitem nie reaguje smile.gif
JaRoPHP
Cytat(soska66 @ 1.12.2006, 13:36:05 ) *
no za cholere nie moge znalezc roznicy pomiedzy dzialaniem tych dwoch kodow co wkleilem. Drugi reaguje na eneter bez problemu.
Cytat
nie no zaraz.... czy ja gdzies napisalem ze ten drugi reaguje?

Poza tym, widzę różnicę pomiędzy wklejonymi kodami. Jeden ma tylko jedno pole typu text, drugi więcej. I ten, gdzie jest ich większa ilość, nie działa (pomimo, że ma document.submit()).
Proponuję umieścić przycisk submit w formularzu, natomiast do znacznika form dodać zdarzenie onSubmit(fun()).
soska66
ten trzeci reaguje bez problemu bo to zupelnie inny kod smile.gif a ty porownales dwa te same, tylko ze jeden przed zmiana a drugi po
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.