Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tylko litery lub tylko cyfry
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
PcPablo
Pozostał mi tylko jeden problem dot. java scriptu.
Mianowicie mam 3 pola w formie:
  1. <input type="text" name="Imie" size="15">
  2. <input type="text" name="Nazwisko" size="15">
  3. <input type="text" name="Data_urodzenia" size="10" value="dd.mm.rrrr" maxlength="10">


Chcaiłbym, żeby w pierwszym i drugim polu można było wpisać tylko litery (imię i nazwisko), czyli żeby scrypt java nie pozwalał na wpisanie czego innego.

A co do trzeciego pola, to żeby możabyło wpisać tylko cyfty (z kropkami) i potem żeby scrypt sprawdzał, czy pole jest poprawnie wypełnione, czyli czy ktoś poprawnie wpisał date w formie: dd.mm.rrrr. Jężeli data byłaby wpisane inaczej, czyli źle, żeby wyskakiwał komunikac o niepoprawnym wpisaniu daty.
bela
nie lepiej zrobić to za pomocą wyrażeń regularnych? java script zawsze można oszukać, chociażby przez telneta tongue.gif
PcPablo
Nie wiem, zabardzo nie rozumiem o co ci chodzi. Tak mi kazano zrobić jak napisałem...
number0
is_numeric ()
is_bool()
is_float()
is_int()
is_string()
is_integer()
itd.


http://pl.php.net/is_numeric
bela
a nie pomyślałem, że ktoś może mieć wyłączony js i już nie sprawdzić poprawności formularza ?
Paul
Mozna dlatego robic to podwojnie odciazajac serwer tym sposobem...

Przerob sobie to odpowiedno:
  1. <script type="text/javascript">
  2. function check(obj, regexp) {
  3. alert(regexp.test(obj.value));
  4. }
  5. <input type="text" onchange="check(this, /^[a-zęółśążźćń ]+$/i);">
  6. <input type="text" onchange="check(this, /^\d{1,2}\.\d{1,2}\.\d{4}$/);">
PcPablo
Cha, to w taki sposób działa ten scrypt. No nieststy nie odpowiada mi to z tego względu, że przy poprawnym wypęłnieniu pola wyskakuje komunikat TRUE.
Miałem na myśli scrypt który powoduje, że w pole w ogóle nie da się wpisać cyfry, a nie sprawdza po wpisaniu, czy jest tam jakaś cyfra...
Paul
Cytat(PcPablo @ 2004-09-15 00:18:54)
No nieststy nie odpowiada mi to z tego względu, że przy poprawnym wypęłnieniu pola wyskakuje komunikat  TRUE.

To byl przykad dzialania funkcji - ktory trzeba dostosowac dla danych potrzeb...

Cytat("PcPablo")
Miałem na myśli scrypt który powoduje, że w pole w ogóle nie da się wpisać cyfry, a nie sprawdza po wpisaniu, czy jest tam jakaś cyfra...


Zaciekawil mnie problem wiec postanowilem go rozwiazac cool.gif:
  1. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  2. <script type="text/javascript">
  3. function check(e, regexp) {
  4. if(navigator.userAgent.indexOf('Gecko') != -1) {
  5. charCode = e.which;
  6. } else {
  7. charCode = e.keyCode;
  8. }
  9. if(charCode > 31) {
  10. znak = String.fromCharCode(charCode);
  11. return regexp.test(znak);
  12. }
  13. }
  14. Tylko a-z, polskie znaki, małe i duże:
  15. <input type="text" onkeypress="return check(event, /[a-zęółśążźćń ]/i);"><br><br>
  16. Tylko cyfry:<input type="text" onkeypress="return check(event, /\d/);">
  17. </body>
  18. </html>

Wystarczy wpisac odpowiedni zakres dopuszczalnych znakow w wyrazeniu regularnym i tyle smile.gif
PcPablo
No super, dzięki! Działa wszystko dobrze!
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.