verplichte invoer html formulier.... Hoe?

Hallo,

Ik ben bezig met het maken van een HTML formulier. Ik wil graag dat enkele gegevens (zoals emailadres) verplicht moeten worden ingevuld voordat de gebuiker op verzend kan klikken.

Ik kan nergens op het web een goede uitleg vinden. Weet iemand hoe ik dit moet aanpakken en of dit uberhaupt mogelijk is met alleen HTML?

dank alvast…

robbes

Je kan dat op meerdere manieren toepassen met bijvoorbeeld javascript of php. Een javascript voorbeeld kan je hier meer vinden: [url]http://www.thesitewizard.com/archive/validation.shtml[/url] Dit kan je prima gebruiken voor simpele formuliertjes. Als je het omzeilen ervan wilt voorkomen dan kan je je het beste gaan verdiepen in php (bijv. de if functie).

Succes!

Bedoel je de volledige afhandeling van het formulier? Want als je het gaat verwerken heb je altijd een taal zoals ASP of PHP nodig.

Als je toevallig dreamweaver hebt:

Je form selecteren
Naar het Behaviours paneel gaan
Op het + tekentje klikken
Validate Form

[quote:a5bc3830ae] Bedoel je de volledige afhandeling van het formulier? Want als je het gaat verwerken heb je altijd een taal zoals ASP of PHP nodig. [/quote:a5bc3830ae]

Nee, ik bedoel niet de afhandeling! dat kan ik doen met een standaard CGI - script van het hostingbedrijf.

Waar het me om gaat is dat gebruikers die het formulier invullen, verplicht worden om enkele gegevens in te vullen. Anders kan het formulier niet verzonden worden.

Beste Irick;

[quote:14e1d2ca73]
Je form selecteren
Naar het Behaviours paneel gaan
Op het + tekentje klikken
Validate Form
[/quote:14e1d2ca73]

Ik beschik over dreamweaver, je opmerking ws dan ook een goede hint… voor tekstvakken heb ik dit inmiddels kunnen instellen!

Het lukt me alleen niet om dit ook in te stellen bij checkboxes en radiobuttons. Als je zo weet hoe ik dat voor elkaar krijg… alvast dankjewel,

groet.

Ik gebruik zelf een validatie routine die ik 'geleend' heb van David Fells.

Zie: http://www.devarticles.com/c/a/HTML/DHTML-Form-Enhancement/

Ik zal je even een voorbeeldje geven dat ik gebruik, je kan de code dan gewoon knippen/plakken/aanpassen.

Dit zet je in je header:

[code:1:4d01a18abb]<script type=“text/javascript”>
function validRequired(formField,fieldLabel)
{
var result = true;
if (formField.value == “”)
{
alert(‘U gaf geen ’ + fieldLabel + ’ in. Gelieve dit te verbeteren.’); // dit is de boodschap die je kan aanpassen
formField.focus();
result = false;
}
return result;
}
function validateForm(theForm)
{
if (!validRequired(theForm.naam,“naam”)) // hier verander je de veldnaam en de naam voor de boodschap
return false;
if (!validRequired(theForm.email,“e-mail adres”))
return false;
if (!validRequired(theForm.bericht,“bericht”))
return false;
return true;
}
</script>[/code:1:4d01a18abb]

En dit is het formulier:

[code:1:4d01a18abb]<form action="formulier_verwerk.php" method="post" onsubmit="return validateForm(this)" id="formulier">
<p>
Uw naam:<br />
<input type="text" name="naam" id="naam" />
</p>
<p>
Uw e-mail adres:<br />
<input type="text" name="email" id="email" />
</p>
<p>
Uw bericht:<br />
<textarea rows="6" cols="45" name="bericht" id="bericht"></textarea>
</p>
<p>
<input type="submit" name="verzenden" value="verzenden" />
</p>
</form>[/code:1:4d01a18abb]

[quote:c15e3e0db5="Robbes"]

Nee, ik bedoel niet de afhandeling! dat [b:c15e3e0db5]kan ik doen met een standaard CGI - script [/b:c15e3e0db5]van het hostingbedrijf.
[/quote:c15e3e0db5]

Mocht je dit nu niet hebben, of je zou er extra voor moeten betalen dan kun je het e.a. ook laten door-routeren bij Cut and Paste Scrips

Het is gratis! Wanneer je dus (standaard) geen gebruik maakt van de scripting mogelijkheid dan kun je dit overwegen, je hoeft dan je abonnement niet te upgraden.

:apple: Robsappeltjes :apple:

oe dat is een goede tip :)

sorry dat ik in dit draadje verder ga, maar is misschien wel zo handig. Want als je de submit button klikt dat zegtie dat je nog paar velden moet invullen…okay die vul je dan in…maar als dan submit wordt geklikt en alles is ingevuld hoe kan je hem dan naar andere pagina laten verspringen die bijvoorbeeld zegt Bedankt voor het invullen ofzo…

dat laten weergeven door de pagina waarin het verwerkt wordt misschien? dus de pagina die in de post="" staat?

post "mijnpagina.html" dus?

[quote:461bb9e229="chilli dude"]post "mijnpagina.html" dus?[/quote:461bb9e229] Nee, form action="hierhetverwerkscript.php/asp/pl" .... Heb je het script dat je data verwerkt zelf gemaakt of is het zo'n standaard geval van je provider ? Als script zelf is gemaakt gooi je er iets in zoals: [code:1:461bb9e229] <meta http-equiv="refresh" content="1;url=bedankt.html"> [/code:1:461bb9e229]

Is het een script dat je provider aanlevert dan moet je waarschijnlijk een hidden value mee geven in je formulier:

[code:1:461bb9e229]
<input type="hidden" name="next_page" value="bedankt.html">
[/code:1:461bb9e229]
dat next_page is een voorbeeld, je zou even aan je provider moeten vragen (of ergens bij help kijken), welke naam je dat moet meegeven

okidokie :) dankjewel

wil je ook dat de inhoud van zo'n field gechecked wordt? Want dan moet je even met reguliere expressies aan de slag in javascript of php.. altyd leuk :)

Kijk ook eens naar [url=http://www.dtheatre.com/scripts/formmail]Formmail[/url]; makkelijk aan te passen (bv. welke pagina je krijgt bij succes en welke pagina bij error)

[quote:2f73034b87]Nee, ik bedoel niet de afhandeling! dat kan ik doen met een standaard CGI - script van het hostingbedrijf. [/quote:2f73034b87] Meestal zijn die standaard CGI-scripts gewoon Formmail van Matt Wright, de meest gebruikte cgi form-handler geschreven in perl. Grote kans dat die het is. Formmail heeft beide functies die je noemt ingebouwd, kan 1) verwijzen naar een thank-you pagina, en valideert velden op aanwezigheid van inhoud, en valideert nog eens het email-veld op syntax. Dit alles naar keuze.

Er zijn 2 manieren waarop die validatie kan plaatsvinden, zoals net genoemd server-side, want dat perl-script doet dat dan op de server na submit van het formulier, maar het kan ook client-side gebeuren. Dat is wat sneller, en netter. Dan gebeurt de validatie met javascript in de browser zelf. Er zijn honderden scripts te vinden op internet als je zoekt op ‘javascript field validation’. Het leukste is echter om e.e.a zelf in javascript aan te passen. Ik zeg altijd maar, als ik het heb kunnen leren kan iedereen het leren… WEL dan Netscape installeren want die heeft een hele goeie javascript debugger en dat is zeker in de beginfase geen overbodige luxe.

[quote:5a41f0c1a0="Jordgubb"]Ik gebruik zelf een validatie routine die ik 'geleend' heb van David Fells.

Zie: http://www.devarticles.com/c/a/HTML/DHTML-Form-Enhancement/[/quote:5a41f0c1a0]

Goede tip. Ik heb hem hier en daar wat aangepast zodat ik alle fouten netjes afgewikkeld krijg in 1 alert. Alleen de case “equals” levert bij mij een probleem op.

case 'equals' :
attrEq = form[i].getAttribute("equals");
var objEq = document.getElementById(attrEq);
if(objEq){
 if (form[i].value != attrEq.value) {
    attrErrorMsg3 = "De invoer bij veld " + objEq.screenname + " is niet gelijk aan de invoer bij het veld " + form[i].screenname + ".n";
    error = true;
    if(attrFormFocus == ""){
        attrFormFocus = form[i];
    }
  }
}
break;

// de document.getElementById(attrEq); loopt bij mij in de soep. de attrEq wordt netjes gevuld met nww .Ik heb in de body hetvolgende staan.

						&lt;td width="260"&gt;&lt;input type="password" name="nww" value="&lt;?php if(!empty($_POST['nww'])) {echo $_POST['nww'];} ?&gt;" size="24" maxlength="255" tabindex="15" validate="regex" regex="name" req="n" screenname="uw nieuwe wachtwoord"&gt;&lt;/td&gt;
						&lt;td width="256"&gt;&lt;input type="password" name="hnww" value="&lt;?php if(!empty($_POST['hnww'])) {echo $_POST['hnww'];} ?&gt;" size="24" maxlength="255" tabindex="16" validate="equals" equals="nww" req="n" screenname="herhaling nieuw wachtwoord"&gt;&lt;/td&gt;

iemand een idee ? Ik zie het niet meer.
tnx !

de functie heet getElementById() dus dan moet er wel een Id zijn!

attrEq = form[i].getAttribute("equals"); equals="nww" var objEq = document.getElementById(attrEq); name="nww"

dus : ik zou zeggen, id is “document.nww”

of moet het document.form.nww zijn ?