Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][JavaScript] input i przycisk enter, problem
neo1986kk
post 28.03.2010, 16:41:16
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Witam, mam mały problem z formularzem, który jest pewnie banalny ale bardzo mi przeszkadza.
Całą stronkę mam w AJAXie i mam przycisk szukaj, strona jest napisana w php.

  1. <form id="formularz">
  2. <input class="help" type="text" name="message" ></input><br>
  3. <input class="helps" type="button" value="szukaj" onclick="search();"></input>
  4. </form>


po kliknięciu przyciksu button jest ok, ale po naciśnięci ENTER strona przechodzi do

strona.php?message=szukane slowo


chciałbym aby po klinięciu enter strona sie nie przeładowywała i żeby wykonwało się również search()

Dlatego rozwiązałem to tak:
  1. <form id="formularz">
  2. <input class="help" type="text" name="message" onkeyup"search1(); ></input><br>
  3. <input class="helps" type="button" value="szukaj" onclick="search();"></input>
  4. </form>
  5.  
  6.  
  7. function search1()
  8. {
  9. var oformularz = document.getElementById('formularz');
  10. var tekst = oformularz.message.value;
  11. var dlugosc = tekst.length;
  12.  
  13. if(tekst.charAt(dlugosc-1) == '\n')
  14. {
  15. search();
  16. }
  17. }
  18.  
  19.  



No i jak sie domyślacie to nie działa, nadal przeładowuje stronę, w ostateczności chciałbym zablokować przycisk ENTER, a zostawić tylko przycisk szukaj

Proszę o pomoc



Go to the top of the page
+Quote Post
gothye
post 28.03.2010, 16:44:51
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


w JS jest jeszcze OnKeyPress np:

  1. onKeyPress="if(event.keyCode == 13)
  2. {
  3. alert('wciosnołes enter ');
  4. }"


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
neo1986kk
post 28.03.2010, 16:49:45
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


kurde ale jak tego uzyć?

  1. function search1()
  2. {
  3.  
  4. if(event.keyCode == 13)
  5. {
  6. alert('wciosnołes enter ');
  7. }


tylko teraz tak :event to musi być ten wciśnięty przycisk czyli na moje to:

  1. function search1(event)
  2. {
  3.  
  4. if(event.keyCode == 13)
  5. {
  6. alert('wciosnołes enter ');
  7. }


ale jak podstawić nr przycisku pod event?

nie no cos tu jest nie tak



  1. function search1()
  2. {
  3.  
  4. if(event.keyCode == 13)
  5. {
  6. alert('wciosnołes enter ');
  7. }
  8.  
  9. a w html musze wpisać onkeypress="search1();" ale to nie dziala.... nie wiem pewnie to jest jakies banalne a ja jak zwykle kombinuje
  10.  




Ten post edytował neo1986kk 28.03.2010, 16:56:34
Go to the top of the page
+Quote Post
gothye
post 28.03.2010, 16:55:52
Post #4





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


  1. if(event.keyCode == 13)
  2. {
  3. funkcja_uruchamiajaca_szukanie();
  4. }


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
mortus
post 28.03.2010, 16:56:00
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Cytat
No i jak sie domyślacie to nie działa, nadal przeładowuje stronę, w ostateczności chciałbym zablokować przycisk ENTER, a zostawić tylko przycisk szukaj
Jeżeli tak, to
  1. <input class="help" type="text" name="message" onKeyPress="if(event.keyCode == 13) return false;" ></input><br>

A jeżeli chcesz uruchomić szukanie, to
  1. <input class="help" type="text" name="message" onKeyPress="if(event.keyCode == 13) search();" ></input><br>
Przy czym to czy strona się przeładuje zależy od tego, jak działa funkcja search().

Ten post edytował mortus 28.03.2010, 16:59:23
Go to the top of the page
+Quote Post
neo1986kk
post 28.03.2010, 17:04:02
Post #6





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


  1. function search1(event)
  2. {
  3.  
  4. if(event.keyCode == 13)
  5. {
  6. alert('wciosnołes enter ');
  7. }
  8.  
  9. }

zrobiłem to tak i pojawia się alert po czym strona się przeładowuje
zrobie to jeszcze w takim razie tak
onKeyPress="if(event.keyCode == 13) search();"

mam nadzieje ze mi nie przeladuje strony


No i ok pojawiło się w Divie na jakieś 0,5 s i znów przeładował stronę, a pokliknięciu na przycisk "szukaj" nie przeładowuje strony.

search dziala tak, że jest to ajax i pokazuje w divie znalezione wyniki


zrobilem tak:

  1. onKeyPress="if(event.keyCode == 13) search();return false;">


i nie przeładowuje już strony, ale nie moge nic wpisaćtongue.gif

może on to wysyła bo wszystko jest w znacznikach form, ale nie ma podanego action ani metod, rozumiem ze domyślnie wysyła na stronę na której jest kod i metodą get, a chyba nie moge pozbyć się <form></form>

Ten post edytował neo1986kk 28.03.2010, 17:13:34
Go to the top of the page
+Quote Post
mortus
post 28.03.2010, 17:26:23
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


  1. <input class="help" type="text" name="message" onKeyPress="if(event.keyCode == 13) { search(); return false; }" ></input><br>
Go to the top of the page
+Quote Post
neo1986kk
post 28.03.2010, 18:23:51
Post #8





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


no wlasnie. dzieki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 1.05.2025 - 04:15