Toon posts:

Controle van formulierveld

Pagina: 1
Acties:

Verwijderd

Topicstarter
Okay jongens, ik ben de wanhoop nabij. Ik heb één heel klein dingetje nodig: een veld controle (javascriptje?) in een formulier. Een controle op een telefoonnummer. Heel simpel: je mag alleen cijfers invullen, geen letters, geen vreemde tekens en je MOET er 10 hebben. En dat is alles. Maar 1) het lukt me niet 2) als het werkt, werkt het niet in m'n bestaande formulier 3) elk javascript dat ik vind werkt niet... :'(

  • El Martino
  • Registratie: December 2000
  • Laatst online: 04-08 10:37

El Martino

Zo niet, dan toch.

Wat heb je geprobeerd dan? Post de code die wel werkt dan, en de source van je form.

"To make a bad day worse, spend it wishing for the impossible", Calvin (Calvin & Hobbes)


Verwijderd

code:
1
2
3
4
5
6
phonenumber = /[0-9]{10}/;

function check() {
  temp = document.forms['formnaam'].elements['veldnaam'].value;
  return phonenumber.test(temp);
}

Deze functie returnt true als het 10 cijfers zijn, en false in alle andere gevallen.

Je kunt dus bijvoorbeeld gebruiken:
if (!check()) alert('fout');

Meer over regular expressions met javascript

Verwijderd

Topicstarter
Het JavaScript dat werkt, standalone... vul je te weinig in, wordt het veld rood. Vul je wel genoeg karakters in, maar bijvoorbeeld een streepje, krijg je een melding...

<hr color="red" size="1" />
3 paginas HTML + Javascript code is wat veel om te plaatsen. Post liever een linkje, dan blijft het hier ook nog leesbaar.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Ff uit mn hoofd voor een nederlands telefoon nummer, met streepje-ondersteuning :P

/^\d{2,4}-?\d{6,8}$/

Maar daar kunnen gekke uitkomsten uitkomen, 4-8 bijvoorbeeld.. Kun je er beter 3 reg exp's van maken, want ik heb geen idee hoe ik dat zou kunnen combineren..

/^\d{2}-?\d{8}$/

/^\d{3}-?\d{7}$/

/^\d{4}-?\d{6}$/

Of zijn er nog mensen die het wel in 1 kunnen? (Moet sowieso nog ondersteuning voor spatie in naast het streepje trouwens)..

Wacht.. ik ga ff over regexp's een topic openen als dat mag om een goeie verzameling te genereren.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
code:
1
<input type="text" maxlength="10">

toevoegen zodat er niet meer dat 10 cijfers ingevult kunnen worden.. dan kunnen mensen toch alleen maar nr's invoeren als ze hun gehele telefoonnr invoeren? of zijn er ook telefoonnr's van 9 getallen?

  • André
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:17

André

Analytics dude

Je kunt het ook heel simpel doen:

if ((Waarde >= 0) && (Waarde <= 9999999999) && (Waarde.length == 10))
{
alert("Oke");
}

Keep it simple :P

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Jawel, maar 90% van de gebruikers zal een streepje gebruiken.

Een goeie validator accepteert gewoon alle geldige input.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Als ik een veld heb waar ik maar 10 waardes in kan voeren. Kan ik niet eens een streepje invoeren..

[0522250000]
dat zijn 10 cijfers..
als ik daar een streepje tussen zou willen zetten, kan dat alleen maar door een cijfer van mijn telefoon nr weg te laten (anders heb ik immers 11 tekens)

dus als je een veld met een maxlength van 10 gewoon checkt of het allemaal getallen zijn dan lijkt het mij voldoende.

Of noteer gewoon achter het veld dat de gebruiker geen - moet gebruiken..
code:
1
if (document.forms['formnaam'].formveld.value.indexOf('-') > -1) alert('Bitte geen \'-\' gebruiken..);

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Dat is de gebruiker opzadelen met een probleem waarvan jezelf te lui bent om het op te lossen..

De gebruiker moet voor het invullen van een telefoonnummer (!) dus eerst je handleiding gaan lezen? En zeer waarschijnlijk moet ie zich vervolgens nog corrigeren als die erachterkomt dat het niet kan..

Zo werkt het alleen bij /14, niet in /13

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Dan los je het anders op
code:
1
2
3
4
5
if (document.forms['form1'].testveld.value.indexOf('-') > -1){
   substringen tot '-'
   substringen van '-' tot eind
   aan elkaar plakken ... en ready...
}

Maar ik snap jou reactie wel, jij wilt het gewoon met reg expressions doen :P

Verwijderd

Okay, nog even een nieuwe regex gebouwd, en ingebouwd in de form validator die uit een eerder projectje is gerold (moet hem nog eens afmaken)
code:
1
phone = /^06-?[0-9]{8}$|^0[0-9]{2}-?[0-9]{7}$|^0[0-9]{3}-?[0-9]{6}$/;

Ik was trouwens in die eerste ^ en $ vergeten, errug slordig :)

Regex in actie
Pagina: 1