Witam!!!

Jak napisać wyrażenie regularne do sprawdzenia, czy wpisano ciąg liter (bez cyfr)?

Napisałem taki kod:

  1. <script type="text/javascript">
  2. function check()
  3. {
  4. var blad = ""; // komunikat o błędzie
  5. var flaga = 0; // czy wszystko jest w porządku
  6.  
  7. //sprawdzenie, czy nie ma cyfr
  8.  
  9. if(!(document.forms[0].elements[4].value).match(/^([a-zA-Z]+)+$/))
  10. {
  11. // wstawienie kursora
  12. document.forms[0].elements[4].focus();
  13.  
  14. blad += "Nazwa nie może zawierać cyfr!\n";
  15. flaga = 1;
  16. }
  17.  
  18. // jeżeli są błędy to komunikat - dla ułatwienia ponumerowałem linijki
  19. 119: if(flaga == 1)
  20. 120: {
  21. 121: alert(blad);
  22. 122: return false;
  23. 123: }
  24. 124: else
  25. 125: return true;
  26. }
  27.  


Formularz ma akcję: onsubmit="chceck();".

Wszystko działa poprawnie - to znaczy, jak są cyfry, wyświetla się komunikat, jednak w przeglądarce Firefox w konsoli JavaScript wyswietla się błąd:

Kod
Błąd: [Exception... "'Nie udzielono uprawnieD do odczytania wBa[ciwo[ci XULElement.selectedIndex'
when calling method: [nsIAutoCompletePopup::selectedIndex]"
nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"
location: "JS frame :: http://localhost/PSI/skrypt.js :: checkClient :: line 121"
data: no] Plik źródłowy: http://localhost/PSI/skrypt.js Wiersz: 121


wiersz wskazuje na linijkę 121, więc alert(blad).

Jeżeli nie wprowadzę powyższego wyrażenia, wszytsko przebiega poprawnie (bezbłędnie)...

Co jest źle?


---------------------------

Błąd juz znalazłem.... (dla ciekawych)
Otóż nie mogę dać focusa przed alertem (w uproszczeniu), dlatego najpierw deklaruję zmienną, która pamięta, które pole ma być aktywne po komunikacie, następnie daję alert i metodę focus().