restrictii caractere in formular

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Avatar utilizator
evident
Mesaje: 168

restrictii caractere in formular

cum bag ca sa imi accepte spatiul?
Adica? Spatile ( ) sunt acceptate...

MarPlo Mesaje: 4343
Caracterul spatiu e permis in campurile de formular.
Daca intrebarea e legata de alt subiect, fii mai explicit sau posteaza la acel subiect.

evident Mesaje: 168
am asa:

Cod: Selectaţi tot

<script type="text/javascript"><!--
// RegExp care sa permite doar litere, numere si liniute "-", "_"
var regx_chr = /^([0-9,\.]+)$/;
var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/;    // RegExp pt. adresa e-mail
var regx_nume = /^([A-Za-z]+)$/;
var regx_text = /^([a-zA-Z0-9_-]+)$/;
// Functia care e apelata la "onsubmit"
// preia campurile din formular, verifica /valideaza datele adaugate
function checkForm(frm1) {
  var fre = false;             // variabila ce va fi returnata de functie

  // preluare casete formular
  
  var nume1 = frm1.nume1;
  var titluanunt1 = frm1.titluanunt1;
  var textanunt1 = frm1.textanunt1;
  var pret1 = frm1.pret1;
  var nrtel1 = frm1.nrtel1;
  var email1 = frm1.email1;

  // verificare valori (Nume, Parola, E-mail), daca sunt incorecte, returneaza alert si selecteaza casuta
  if(nume1.value.length<6 || nume1.value.length>50 || nume1.value.search(regx_nume)==-1) {
    alert('Numele trebuie sa fie format din minim 6 si maxim 50 LITERE!');
    nume1.select();    
  }
  else if(titluanunt1.value.length<6 || titluanunt1.value.length>50 || titluanunt1.value.search(regx_chr)==-1) {
    alert('Numele trebuie sa fie format din minim 6 si maxim 50 LITERE!');
    titluanunt1.select();    
  }
  else if(pret1.value.length<1 || pret1.value.length>9 || pret1.value.search(regx_chr)==-1) {
    alert('Pretul trebuie sa contina doar numere!');
    pret1.select();    // selecteaza casuta pt. Nume
  }
  else if(email1.value.search(regx_mail)==-1) {
    alert('Adaugati o adresa de e-mail corecta');
    email1.select();    // selecteaza casuta pt. E-mail
  }
  else if(nrtel1.value.length<10 || nrtel1.value.length>30 || nrtel1.value.search(regx_chr)==-1) {
    alert('Numarul de telefon trebuie sa fie format din minim 10 si maxim 30 de numere!');
    nrtel1.select();    // selecteaza casuta pt. Parola
  }
  
  else fre = true;

  return fre;
}
--></script>
iar in forma la titluanunt am:

Cod: Selectaţi tot

<input type="text" name="titluanunt" maxlength="87" id="titluanunt1"/>
cand dau submit fara sa scriu titlul anuntul meu merge mai departe nu se opreste ca la celelalte.de ex daca la email pun test mi se opreste scriptul dar la titlu pot sa pun,pot sa nu pun nimic mi se opreste.a mers odata dar cand puneam titlul cu spatiu de ex vand telefon imi dadea tot eroare...ce gresesc?

claUdiu Mesaje: 313
Incearca asa:

Cod: Selectaţi tot

<script type="text/javascript"><!--
// RegExp care sa permite doar litere, numere si liniute "-", "_"
var regx_chr = /^([0-9,\.]+)$/;
var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/;    // RegExp pt. adresa e-mail
var regx_nume = /^([A-Za-z]+)$/;
var regx_text = /^([a-zA-Z0-9_-]+)$/;
// Functia care e apelata la "onsubmit"
// preia campurile din formular, verifica /valideaza datele adaugate
function checkForm(frm1) {
  var fre = false;             // variabila ce va fi returnata de functie

  // preluare casete formular
  
  var nume1 = frm1.nume1;
  var titluanunt1 = document.getElementById('titluanunt1');
  var textanunt1 = frm1.textanunt1;
  var pret1 = frm1.pret1;
  var nrtel1 = frm1.nrtel1;
  var email1 = frm1.email1;

  // verificare valori (Nume, Parola, E-mail), daca sunt incorecte, returneaza alert si selecteaza casuta
  if(nume1.value.length<6 || nume1.value.length>50 || nume1.value.search(regx_nume)==-1) {
    alert('Numele trebuie sa fie format din minim 6 si maxim 50 LITERE!');
    nume1.select();    
  }
  else if(titluanunt1.value.length<6 || titluanunt1.value.length>50 || titluanunt1.value.search(regx_chr)==-1) {
    alert('Numele trebuie sa fie format din minim 6 si maxim 50 LITERE!');
    titluanunt1.select();    
  }
  else if(pret1.value.length<1 || pret1.value.length>9 || pret1.value.search(regx_chr)==-1) {
    alert('Pretul trebuie sa contina doar numere!');
    pret1.select();    // selecteaza casuta pt. Nume
  }
  else if(email1.value.search(regx_mail)==-1) {
    alert('Adaugati o adresa de e-mail corecta');
    email1.select();    // selecteaza casuta pt. E-mail
  }
  else if(nrtel1.value.length<10 || nrtel1.value.length>30 || nrtel1.value.search(regx_chr)==-1) {
    alert('Numarul de telefon trebuie sa fie format din minim 10 si maxim 30 de numere!');
    nrtel1.select();    // selecteaza casuta pt. Parola
  }
  
  else fre = true;

  return fre;
}
--></script>
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Problema e la codul de preloare in JavaScript, corelat cu ce ai in casuta input pt. "titluanunt1".
La input ai name="titluanunt" , dar in JS il preiei cu: frm1.titluanunt1 . Ori pui name="titluanunt1" , ori preiei in JS cu numele asa cum e la "name".

Daca vrei sa adaugi spatiu in caracterele permise, merge asa:

Cod: Selectaţi tot

var regx_chr = /^([0-9,\. ]+)$/;

Subiecte similare