Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Wysyłanie forma enterem
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
Ustawiłem domyślny input. W Operze po naciśnieciu ENTER formularz ozostaje wysłany. W IE nestety nie... jak to rozwiązać?
b4x
pokaz kod winksmiley.jpg
The Night Shadow
  1. <form action="index.php" method="post" id="zaloguj" style="display: inline;">
  2. <table border="0" align="center">
  3. <tr>
  4. <td align="center" valign="middle">
  5. <a href="#" onMouseOver="overlib('<table><tr><td><center>...imię jakie nadano mi w tym świecie... to ta mała<br />cząstka, która zlała się z nim w jednolitą całość.</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
  6. Login:
  7. </a>
  8. </td>
  9. <td align="center" valign="middle">
  10. <input type="text" style="width: 125px;" name="login" id="loginuzytkownika" />
  11. </td>
  12. </tr>
  13. <tr>
  14. <td align="center" valign="middle">
  15. <a href="#" onMouseOver="overlib('<table><tr><td><center>...jednak ta cząstka, nadal pozostaje moją.</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
  16. Hasło:
  17. </a>
  18. </td>
  19. <td align="center" valign="middle">
  20. <input type="password" style="width: 125px;" name="haslo" />
  21. </td>
  22. </tr>
  23. <tr>
  24. <td colspan="2" align="right" valign="middle">
  25. <a href="#" onclick="document.getElementById('zaloguj').submit();" onMouseOver="overlib('<table><tr><td><center>...w drodze do źródła.</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
  26. Zaloguj
  27. </a>
  28. </td>
  29. </tr>
  30. </table>
  31. </form>


W powyższym kodzie natralnie po kliknięciu na wyślij formularz jest wysyłany. W IE jednak nie działa to z a naciśnięciem ENTER.

Jeszcze jedna kwestia. Czy istnieje możliwość nadania kolejności wybierania inputów po naciśnieciu TAB? W momencie kiedy pojawiają się linki, ale które nie sa linami tylko dodatkowymi dymkami IE włącza je do tablacji. jesli istnieje możliwość ustawienia kolejności to jak?
Fipaj
tabindex...?
The Night Shadow
No dobrze, ale co z ENTEREM?
Fipaj
Nie jestem pewien, ale chyba IE po prostu tak ma i na to nic nie poradzisz...

Chociaż... możesz spróbować instrukcjami warunkowymi IE i JS: onclick="this.submit()" czy jakoś tak
FiDO
Jesli nie ma widocznego przycisku submit (<input type='submit'...) to w IE takie cos nie zadziala i trzeba sobie dopisac obsluge tego w JS.
The Night Shadow
Dorbze, a jak wygląda ta obsługa?
FiDO
Funkcja wywolywana musi byc na onkeyup a wygladala by ona mniej wiecej tak:

Kod
function submit(e)
{
    var e=e||window.event;
    var key = e.charCode || e.keyCode;

    if (key == 13)
    {
        document.forms['formularz'].submit();
    }
}

Nie testowalem, pisane z pamieci, wiec nie gwarantuje, ze dziala.
Fipaj
FiDO: można znacznie prościej ;-)

http://leksykot.top.hell.pl/notatki/www/ie-hacks.shtml
FiDO
To wcale nie zalatwia sprawy.. tylko umozliwia wywolanie eventa jedynie dla IE, przez co moze on byc troche prostszy, ale z tym "znacznie" to chyba troche przesadziles :] No chyba, ze masz na mysli umieszczenie submita tylko dla IE.. ale wg mnie to nie rozwiazanie. Chociaz w sumie moznaby mu sprobowac nadac position: absolute i jakies duze ujemne left: tak zeby sobie "poszedl" z ekranu smile.gif
The Night Shadow
  1. <?php
  2. function submit(e)
  3.         {
  4.             var e=e||window.event;
  5.             var key = e.charCode || e.keyCode;
  6.  
  7.             if (key == 13)
  8.             {
  9.                 document.forms['zaloguj'].submit();
  10.             }
  11.         }
  12. ?>


Niestety nie dziala... co z tym można zrobić?

Parse error: syntax error, unexpected T_STRING, expecting ')' dotyczy linii function submit(e)
TomASS
@Nocny Cieniu: Tożto funkcja JavaScript a nie php tongue.gif
  1. function submit(e)
  2. {
  3. var e=e||window.event;
  4. var key = e.charCode || e.keyCode;
  5.  
  6. if (key == 13)
  7. {
  8. document.forms['zaloguj'].submit();
  9. }
  10. }
  11.  
The Night Shadow
Łoj... :- ) To sie skompromitowalem... no dobrze, ale jak dzieki niej wywoływac submit tego formularza po naciśnięciu ENTER?
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.