Formulier valideren

Status
Niet open voor verdere reacties.

Wijcky

Nieuwe gebruiker
Lid geworden
16 mrt 2009
Berichten
3
Hey iedereen,

Ik ben bezig met een reservatie formulier te maken. Daarin staan verschillende velden.

Nu zou ik eigenlijk willen dat een bepaald veld eerst gechecked wordt op het feit of er wel iets in staat en daarna of het wel om een nummer gaat.

Weet er iemand hoe dit moet gedaan worden?

Heb voorlopig al deze code...

if (form.telefoon.value == "")
{
alert("Gelieve uw telefoonnummer mee te geven.");
form.telefoon.focus( );
return false;
}

Alvast bedankt voor jullie reacties...
 
laat maar..
ik praat onzin..

@ Johantrax
ik was gewoon stom bezig, ik dacht dat het om een access formulier ging (dom dom dom)
 
Laatst bewerkt:
Je geeft je checkbox en je input een id en gebruikt dan:
Code:
var cb = document.getElementById('id_van_de_checkbox').checked;
if (cb == 'checked') {
        if (isNaN(document.getElementById('id_van_de_input').value)) {
                //checkbox is aangevinkt, maar de invoer is geen nummer
        } else {
                //OK
        }
} else {
        //checkbox is niet aangevinkt, waarde van het veld doet er niet toe
}

@Soldaatje: wat komt VB in JavaScript doen ?
 
Code:
if (isNaN(document.getElementById('id_van_de_input').value))
Dit matched ook een lege string. isNaN("") geeft namelijk false.

Bij een telefoon nummer wil je meestal alleen cijfers, spaties en streepjes accepteren (die kun je altijd server-side er nog uit filteren). Dan is het makkelijk om een regular expression te gebruiken:

Code:
var checkbox = document.getElementById('id_van_de_checkbox');
var input_telefoon = document.getElementById('id_van_de_input');
var number_exp = new RegExp("^[0-9]+[- 0-9]*$", "i");
if (checkbox .checked)  // de string "checked" evalueert ook naar true, maar je krijgt soms ook meteen een boolean
{
  if (!number_exp.test(input_telefoon.value)) // als de regex NIET matched (staat een uitroepteken voor)
  {
    //checkbox is aangevinkt, maar de invoer is geen nummer
  }
  else
  {
    //OK
  }
}
else
{
  //checkbox is niet aangevinkt, waarde van het veld doet er niet toe
}

De regex bestaat uit dit "patroon": ^[0-9][- 0-9]*$
de ^ matched aan het begin van de string/regel
de eerste [0-9] matched alleen iets tussen de "0" en "9". Het eerste character van de string moet dus een getal zijn
[- 0-9]* dit betekent een character streepje, een spatie of iets tussen de "0" en "9". Het sterretje (*) betekent 0 of meer keer.
De $ matched alleen aan het einde van de string/regel

Door de ^ en $ moet dus de hele string aan het patroon voldoen. De eerste [0-9] zorgt ervoor dat het met een getal moet beginnen. De rest van de characters moet een combinatie van spaties, streepjes en cijfers zijn.

Als je ook het aantal cijfers wilt controleren is een iets ingewikkeldere functie nodig, maar het niet echt veel ingewikkelder.
 
Laatst bewerkt:
Hey iedereen,

Alvast bedankt voor de reacties...

Ik snap er op de moment nog wel niet alles van, maar ga morgen wanneer ik weer is tijd heb om eraan te werken is uitgebreid naar kijken.

Is er ook een mogelijkheid om ervoor te zorgen dat de bezoeker van de site niet hoeft te beschikken over een outlook of andere mail client? Zit bij Telenet Belgie en naar wat ik verstaan heb, ondersteunen die dat niet meer...

Greets

Wijcky
 
Is er ook een mogelijkheid om ervoor te zorgen dat de bezoeker van de site niet hoeft te beschikken over een outlook of andere mail client?
Bedoel je om mail te sturen? Ja, je kan via bijvoorbeeld een php-script een mail sturen, vanaf de server. Maar dan moet je server wel a.) php ondersteunen en b.) de mail-functie 'aan' hebben staan.


:thumb:
 
Heb dit ondertussen al opgelost via mailmyform.com

Nu er nog voor zorgen dat die nummers in orde komen en dan is mijn form klaar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan