Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Walidacja pól
Forum PHP.pl > Forum > Po stronie przeglądarki
Largo
Witam,

Mam oto taki skrypcik:

  1. <script type='text/javascript'>
  2. function checkFields()
  3. {
  4. var requiredFields = new Array ( 'game_name', 'game_pass', 'battle_acc', 'reason', 'tid' );
  5. var errors = "";
  6.  
  7. for ( var i = 0; i < requiredFields.length; i++ )
  8. {
  9. if ( requiredFields[i] == "" )
  10. {
  11. errors += '{$this->ipsclass->lang['required_fields']}';
  12. }
  13. }
  14.  
  15. if ( errors != "" )
  16. {
  17. alert( errors );
  18. return false;
  19. }
  20. return true;
  21. }


Ma on teoretycznie bardzo proste. Ma zdefiniowane pola "name", które są wymagane. Niestety, nie działa jak powinien, nic nie robi, FF nie wyrzuca błędów, nic... Jak to poprawić?
nospor
if ( requiredFields[i] == "" )

mala wskazowka:
przeciez pod requiredFields[i] masz tylko nazwe pola a nie pole smile.gif
Largo
Witaj,

Fakt, sprawdziłem i masz rację. Poprawiłem to tak, ale dalej nie działa:

  1. <script type='text/javascript'>
  2. function checkFields(form)
  3. {
  4. var requiredFields = new Array ( 'game_name', 'game_pass', 'battle_acc', 'reason', 'tid' );
  5. var errors = "";
  6.  
  7. for ( var i = 0; i < requiredFields.length; i++ )
  8. {
  9. if ( form.getElementsByName(requiredFields[i]).value == "" )
  10. {
  11. errors += '{$this->ipsclass->lang['required_fields']}';
  12. }
  13. }
  14.  
  15. if ( errors != "" )
  16. {
  17. alert( errors );
  18. return false;
  19. }
  20. return true;
  21. }
nospor
nie trzymaj tam nazwy tylko id.
poźniej do pola dobieraj sie poprzez document.getElementById()
no i dla pol nadaj jeszcze to id
Largo
Witaj,

Dziękuje za pomysł. Wszystko dobrze mi teraz działa :-) Ale dlaczego ja o ID nie pomyślałem? :-) Chyba nauka JS mi się od samych podstaw kłania... Mimo to dziękuję.

Pozdrawiam,
Largo

PS. Mam kolejny, ale wyjątkowo dziwny problem! W pętli przejeżdzam po błędach i mam taki kod:

Kod
            alert ( 'Zmienna nazywa się: ' + requiredFieldsErrors[i] );
            errors += "{$this->ipsclass->lang['" + requiredFieldsErrors[i] + "']}\n";


Pierwsza linijka wykonuje się poprawnie ( Pokazuje: Zmienna nazywa się: XX ) i tak 4 razy i poprawne dane daje, a druga część nie. Tutaj chodzi o to, że w $this->ipsclass->lang[ ' ' ] Przekazuje się nazwę zmiennej ( 'no_game' ), tamten skrypt to pokazuje, a ten nie? Dlaczego?
nospor
co to jest:
{$this->ipsclass->lang
?
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.