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