![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chce zrobić formularz który przy błędnym wpisaniu któregoś z pól nie będzie odświeżał strony tylko wyświetli komunikat gdzie znajduje się błąd. Formularz wygląda tak:
poniżej pola np. kod js
Nie sugerujcie się treścią to tylko prosty przykład opisujący mój problem polegający na tym, że strona się odświeża a chce aby wyświetlił sie tylko błąd bez odświerzania. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 28.02.2010 Skąd: Stargard Szczeciński Ostrzeżenie: (0%) ![]() ![]() |
Nie piszę w JS, jednak bym wrzucił to w pętle ;>
Ale pamiętaj, że nie każdy obsługuje JS. Masz w PHP Nie będę Ci podawać kodu CSS, sam sformatuj sobie już :] -------------------- Dziecko Neostrady jest jak pętla nieskończona
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 15.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Wystarczy dodać mały szczegół - return. Oprócz tego proponuję zrobić to nieco inaczej: funkcję niech wywołuje wciśnięcie przycisku 'OK', a nie zdarzenie onSubmit formularza. Będzie to wyglądało tak: Z form usuwasz zdarzenie onSubmit:
Do przycisku 'OK' dodajesz onClick i zmieniasz go z type='submit' na type='button':
A w funkcji dodajesz odpowiednio:
Co tu zrobiłem: Sprawdzasz każde pole z osobna. Jeśli jest puste, wyświetlasz komunikat i nie wysyłasz formularza, a jeśli wszystkie są wypełnione - zwraca true i wykonuje submit() dla formularza (innymi słowy - wysyła go ![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety po kliknieciu w przycisk nic sie nie dzieje
Wiecie może dlaczego ? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
zobacz jak to wygląda u mnie (wyszukiwarka prosta) :
-------------------- Nie udzielam pomocy poprzez PW
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
dodatkowo mozesz po kazdej zmianie pola sprawdzic wartosc pola poprzez onChange
jesli pola te definiuja np email login itd mozesz ajaxem sprawdzic czy email jest wolny czy nie, poczym podac odpowiednia informacje przy danym polu jesli nie chcesz wyslac formularza z bledami mozesz zrobic sobie funkcje js ktora zbada ci wszystkie pola a pozniej wywola submit czyli document.nazwa_fomularza.submit... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem kod i teraz działa poprawnie tylko mam jeszcze jedno pytanie.
np.
Ustawiłem styl w razie gdyby nazwisko zostało źle wpisane, teoretycznie działa. Tylko, że jeśli wpisze coś do tego pola nadal jest aktywny ten styl czyli czerwona ramka a chciałbym aby po wpisaniu było normalnie. Ten post edytował attimo 1.03.2010, 17:11:37 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 15.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrób tak:
Do pola, które ma być wyróżnione (nazwisko), dodaj:
Teraz po zmianie zawartości pola, ramka będzie automatycznie usuwana. Możesz też zamiast onChange użyć onFocus - wtedy ramka zniknie po uaktywnieniu tego pola (np. kliknięciu w nim) Ten post edytował QooBooS 1.03.2010, 21:19:34 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 6 Dołączył: 23.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Z tym sobie poradziłem, ale bez Ajaxa to raczej nie ma sensu. Jeśli pole to np. login to po przejsciu do następnego trzeba byłoby sprawdzić to poprzednie z użyciem php a dokładniej sprawdzić czy w bazie nie ma już takiego użytkownika. mógłbym użyć dla inputa onChange ale nie bardzo wiem jak miała by wyglądać taka funkcja sprawdzająca w ajaxie.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
ajax nie sluzy do sprawdzania twoich pol tylko komunikacji z serwerem.. musisz napisac sobie funkcje ktora pobierze wartosc pola, nastepnie zbudowac sobie ajaxa, albo skorzystac z gotowych rozwiazan typu jQuery, ajax, wysle ci ta wartosc do skryptu php, w php sprawdzasz sobie czy istnieje np uzytkownik, pozniej musisz jeszcze obsluzyc powrot ajaxa i koniec, nie wiem jak dziala ajax w jQuery bo korzytam ze swojego ajaxa, u mnie jest tak ze w powrocie wykonywana jest funkcja taka jaka wsakrze przy wywolaniu ajaxa,
np:
teraz mi przyszlo do glowy ze JQ fajnie obsluguje JSON-a wiec mozesz sobie zwrocic json-a a potem tylko eval(); Ten post edytował wiiir 2.03.2010, 08:54:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 10:57 |