Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] formularz
Forum PHP.pl > Forum > Przedszkole
Wieczny
Witam i mam pytanie czy za pomocą technologi java mogę wykonać dynamiczny formularz tzn chodzi mi o taki np gdy user poda złe dane to zaraz po opuszczeniu pola kolor ramki sie zmieni na czerwony ? i obok np pojawi sie napis błąd !. ?
nexis
Cytat(Wieczny @ 24.06.2008, 23:26:17 ) *
Witam i mam pytanie czy za pomocą technologi java mogę wykonać dynamiczny formularz tzn chodzi mi o taki np gdy user poda złe dane to zaraz po opuszczeniu pola kolor ramki sie zmieni na czerwony ? i obok np pojawi sie napis błąd !. ?


Tak, ale prawdopodobnie pytasz o Javascript, a nie o Java.

Javascript to nie Java!
Wieczny
w takim razie czy JS da rade coś takiego zrobić ? winksmiley.jpg
nexis
Cytat(Wieczny @ 24.06.2008, 23:44:04 ) *
w takim razie czy JS da rade coś takiego zrobić ? winksmiley.jpg


Poczytaj o funkcji onblur
Wieczny
no dobra przeczytałem, zastanawia mnie jednak jak stworzyć warunek do js żeby wszytko było ładnie dynamicznie i jednocześnie js sprawdzało czy dane w formularzu są poprawne dry.gif
Cysiaczek
To jest proste. Najważniejsze, musisz wiedzieć, czego taki walidator potrzebuje.

1. Potrzebuje identyfikator pola, które jest walidowane
2. Potrzebuje wartość tego pola
3. Potrzebuje nazwę rodzaju walidatora (chyba, że sam znajdzie na podtstawie id pola).

Znając te 2 (3) zmienne wstawiasz je do wywołania funkcji onchange='twojaFunkcjaWalidujaca(this.id, this.value)'
  1. function twojaFunkcjaWalidujaca(id, val, type)
  2. {
  3. // i co w tym trudnego? Prosty warunek na to, czy wartość jest określonego typu/dłogości itp.
  4. if(error)
  5. {
  6. document.getElementById(id).style.background='red';
  7. }
  8. else
  9. {
  10. document.getElementById(id).style.background='green';
  11. }
  12. }


Pozdrawiam
Wieczny
Czy da rade aby po opuszczeniu pola obramowanie inputa zmieniło kolor ? bo póki co nawet nie umiem zmienić tła inputa tylko zmienia tło strony ktoś wytłumaczy questionmark.gif biggrin.gif
Kod
<INPUT TYPE="TEXT" NAME="FIELD" SIZE=10 onfocus="bgColor='#000000'">
Cysiaczek
Podstawy html i JS. bgColor to kolor tła strony. Zrób tak, jak Ci napisałem.

Pozdrawiam.
Wieczny
  1. <input type="text" name="pole1" onfocus="test()">
  2.  
  3.  
  4. <script language='javascript'>
  5. function test()
  6. {
  7. if(document.formularz.pole1.value=='xxx')
  8. {
  9. document.getElementById(id).style.background='red';
  10. }
  11. else
  12. {
  13. document.getElementById(id).style.background='green';
  14. }
  15. }


Nie śmiga smile.gif czego zapomniałem ? biggrin.gif
Shili
Na razie masz tylko jednego inputa, bez formularza. Nie odwołasz się do niego poprzez document.formularz.pole1 to chyba jasne.
Albo dodaj odpowiedni znacznik form albo id dla inputa i odwołuj się przez document.getElementById

Po kolejne nie masz przekazywanego nic jako argumenty funkcji. Nie masz id inputa, a poprzez id próbujesz mu zmieniać kolor.

Po kolejne, jeśli chcesz, żeby po opuszczeniu pola zmieniało kolor, to nie onfocus, a onblur.

Przeczytaj jeszcze raz to co napisał Cysiaczek, tym razem z większym zrozumieniem winksmiley.jpg
Wieczny
Śmigać śmiga tylko zastanawia mnie teraz fakt jak bez przeładowania strony mam dostarczyć zawartość pola input bo raczej nie przez $_POST[''] smile.gif ani value.
  1. <form action='index.php' method=post>
  2. test<input id="1" type="text" name="pole1" onblur="test(id, type, value)">
  3. </form>
  4.  
  5. <script language='javascript'>
  6. function test(id, type, value)
  7. {
  8. if(document.getElementById.value=='ble')
  9. {
  10. document.getElementById(id).style.borderColor='red';
  11. }
  12. else
  13. {
  14. document.getElementById(id).style.borderColor='green';
  15. }
  16. }
Shili
To znaczy do czego dostarczyć? Do funkcji js, czy do strony index.php?
Wieczny
do funkcji js
Shili
Nie przeczytałeś tego, co pisał Ci Cysiaczek.

Cytat
Znając te 2 (3) zmienne wstawiasz je do wywołania funkcji onchange='twojaFunkcjaWalidujaca(this.id, this.value)'

Widzisz różnicę? Nie sugeruj się liczbą przekazywanych atrybutów oczywiście ani inną nazwą funkcji.

Dalej:
Kod
if(document.getElementById.value=='ble')

Porównaj sobie to wyrażenie napisane przez Ciebie z innymi wyrażeniami getElementById, które masz w swoim skrypcie. Czegoś brakuje.

Popraw to, a z pewnością będzie działać.
Wieczny
Dobra wielkie dzięki działa smile.gif a i to przykładowy kod jak by ktoś miał ten sam problem winksmiley.jpg

  1. <form action='index.php' method=post>
  2. test<input id="1" type="text" name="pole1" onchange="test(this.id, this.type, this.value)">
  3. </form>
  4.  
  5. <script language='javascript'>
  6. function test(id, type, value)
  7. {
  8. if(document.getElementById(id).value=='xxx')
  9. {
  10. document.getElementById(id).style.borderColor='red';
  11. }
  12. else
  13. {
  14. document.getElementById(id).style.borderColor='green';
  15. }
  16. }
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.