Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Sprawdzanie danych w formularzu, jak najprościej edytować zmienną globalną w funkcji?
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Zastanawiam się, jakby można zoptymalizować funkcję js do sprawdzania danych wprowadzonych w formularzu przez użytkownika, której do tej pory używałem:
Kod
function check(to){
      var error="";
      if(to.pwd.value!=to.pwd2.value)
          error="Podane hasła różnią się!";
      if(to.login.value==""){
          if(error!="") error+="\n";
          error+="Podaj login!";
      }
      if(to.pwd.value==""){
          if(error!="") error+="\n";
          error+="Podaj hasło!";
      }
      if(to.email.value==""){
          if(error!="") error+="\n";
          error+="Podaj adres e-mail!";
      }
      if(error=="") to.submit(); else alert(error);
  }

I w formularzu:
Kod
onSubmit="check(this);return false;"

Skrypt działa, ale przy sprawdzaniu każdego pola muszę dopisywać (warunkowo) znak nowej linii - "\n".
W PHP załatwiłem to tak:
Kod
<? php $error='';
  function addMess($mess){
      global $error;
      if(!empty($error)) $error.='<br />';
      $error.=$mess;
  }
  if($_POST['pwd']!=$_POST['pwd2']) addMess('Podane hasła nie zgadzają się!');
  if(strlen($_POST['login'])<3 || strlen($_POST['login'])>30) addMess('Login może mieć od 3 do 30 znaków');
  ... itd.
  if($error==''){
  wyślij formularz
  } else{
  echo $error;
  }?>

Ale jak coś podobnego w JS napisać? Próbowałem napisać funkcję podobną do tej addMess z PHP - ale nie wiem jak w js w funkcji edytować zmienną globalną. Proszę o rady jak taki skrypt napisać smile.gif



Narazie załatwiłem to tak:
Kod
function check(to){
    var error="";
    if(to.pwd.value!=to.pwd2.value) error+="Podane hasła różnią się!\n";
    if(to.login.value=="") error+="Podaj login!\n";
    if(to.pwd.value=="") error+="Podaj hasło!\n";
    if(to.email.value=="") error+="Podaj adres e-mail!\n";
    if(error=="") to.submit(); else alert(error+"Proszę poprawić błędy i wysłać formularz ponownie.");
}

Kod się nieco skrócił, ale ma może ktoś lepsze pomysły na zorganizowanie tej funkcji? smile.gif

Ten post edytował Apocalyptiq 24.10.2008, 18:50:44


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:41