Javascript formulier checken

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Wie kan mij helpen aan een stukje javascript dat meerdere velden in eenzelfde formulier checked op dezelfde criteria?

Het formulier noemt : contactForm
De velden : field0 tot field3

Er mogen alleen a-z, A-Z en spaties in voorkomen.

Het script ziet er momenteel als volgt uit :

function checkField() {
var rExp;
for (var i=0; i<3; i++) {
rExp = /^[a-zA-Z ]$/;
if (!rExp.exec(document.contactForm.field.value)) {
alert("Please fill out the form properly!");
return false;
}
alert("Information complete!");
}
}

Na het testen krijg ik de melding dat document.contactForm.field geen object is, ofwel leeg.

Thx, heb al vanalles geprobeerd. Ook google zoeken en alle soorten javascript sites.

Greetz
 
Laatst bewerkt:
PHP:
function check(id) {
 return id.value.match(/^[a-zA-Z ]+$/);
 };

function checkForm(id) {
 if (!check(id.field0) || !check(id.field1) || !check(id.field2) || !check(id.field3)) {
  alert('Please fill out the form properly!');
  return false;
  };
 alert('Information complete!');
 return false; // nog niet opsturen, eerst checken, daarna:
 // return true;
 };

Met <form onsubmit="return checkForm(this)" ...>

Je gebruikte een array en die heb je niet, wel vier verschillend genoemde velden. a0 is niet hetzelfde als a[0]. Je had wel de elements array kunnen gebruiken, als: document.contactForm.elements .Maar dat zijn alle elementen, ook hidden's en de submit knop, kwestie van tellen.

Bij de rexp moest nog een + dit betekent 1 of meer, je had exact 1 letter of spatie.
? : 0 of 1
* : 0 of meer
+ : 1 of meer
{n} : precies n
{n,} : n of meer
{n,m} : n t/m m

id.value.match(rexp) <=> rexp.exec(id.value) onder deze omstandigheden.

http://www.visibone.com/regular-expressions/
Goede link voor reguliere uitdrukkingen, en makkelijk te bewaren.


Ik hoop dat het zo lukt, vr.gr. Egel.
 
Zal dat straks ff testen sie, thx alvast. Ik laat de resultaten weten.
 
Heb slechts enkele delen van het script gebruikt en gemixed, en elk veld apart laten checken.
Resultaat : gelukt. :) Thx.
 
Graag gedaan :)

Zelf bewerken is ook dé manier om het te snappen.

Nog een kleine toevoeging, radio buttons werken wel met een array:
<input type="radio" name="rondje" value="1">
<input type="radio" name="rondje" value="2">

je hebt dan rondje[0] en rondje[1], bv voor if document.forms[0].rondje[0].checked

En het blijkt ook voor text te werken

<input type="text" name="field">
<input type="text" name="field">

je hebt dan wel field[0] en field[1], maar hoe dat opstuurt (via cgi-script) weet ik niet.


Gr. Egel.
 
Nog iets dat ik moet proberen.
Nog eens heel erg bedankt voor de informatie. :)

Greetz.:cool:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan