formulier controleren

Status
Niet open voor verdere reacties.

Sennec

Gebruiker
Lid geworden
17 jan 2009
Berichten
77
Hallo!

Ik ben al enkele dagen aan het proberen om een formuliertje te controleren met javascript maar dit blijkt allemaal niet te werken. Ik heb al enkele voorbeelden opgezocht maar dat is niet wat ik zoek.

dit is de vereenvoudigde code die ik heb:

functie:
[JS]function controleer(form)
{
if (form.naam.value == "")
{ alert("Je hebt de naam niet ingevuld."); }
}[/JS]

html:
HTML:
<form name="contact" method="post">
			<table border="0">
				<tr>
					<td>Naam:</td>
					<td><input type=text name="naam" size="40" maxlength="25" ></td>
				</tr>
			<tr>
					<td></td>
					<td><input type=submit value="Bericht verzenden" onclick="controleer('this.form')" /></td>
				</tr>
</table>
			</form>

Hoe kan ik nu doormiddel van 1 druk op die button een heel formulier checken ? De voorbeelden die ik gezien heb doen bij elk tekstvak een "onchange" maar ik zou een "onclick" moeten hebben op die knop dus.

Ik hoop dat het duidelijk is, kan iemand mij helpen ?
 
waarom geen php?, of heb je geen php ervaring?
in php is het super simpel
HTML:
 <form name="contact" method="post">
            <table border="0">
                <tr>
                    <td>Naam:</td>
                    <td><input type=text name="naam" size="40" maxlength="25" ></td>
                </tr>
            <tr>
                    <td></td>
                    <td><input type=submit value="Bericht verzenden" onclick="controleer('this.form')" /></td>
                </tr>
</table>
            </form>
PHP:
if($_POST['naam']=!""){
// ga verder met de code
if(strlen($_POST['naam'])<25){
// heeft minder dan 25 karakters, (is een voorbeeld dat je meerdere dingen kan checken)
}
}

en zo kun je door steeds
if(){

}
te gebruiken alles checken wat je wilt een uiteindelijk het in database zetten
if(){
if(){
if(){
in datbase zetten
}
}
}
 
Ja dat weet ik, maar het is een opdracht voor school en mochten (bijna) geen php gebruiken + het contactformulier MOEST in javascript :confused:

Het is inderdaad makkelijker met php, maar dat is de opdracht helaas niet :p

Maar toch bedankt voor de hulp :D
 
De button van ''submit'' naar ''button'' zetten, en als alles goed is in de javascript (geen lege velden e.d) dan het form submitten.

[js]<script type="text/javascript">
function controleer()
{
if (document.getElementById("textveld").value == "") alert("Hee, je hebt het tekst-veld leeggelaten.");
else document.forms[0].submit();
}
</script>

<form name="contact" method="post" action="padnaarPHPbestand.php">
<table border="0"><tr>
<td>Naam:</td>
<td><input type="text" name="naam" size="40" maxlength="25" id="textveld" ></td></tr>
<tr><td></td><td><input type="button" value="Bericht verzenden" onclick="controleer()" /></td></tr>
</table>
</form>[/js]

Hoop dat het je helpt, succes :)
 
Bedankt! Ik heb het werkende gekregen, nu nog uitbreiden naar het formulier dat ik wou. Ik kan weer even verder.
 
Het kan ook met een "submit" button, maar dan moet je aan de form-tag een onSubmit event handler hangen:
HTML:
<form name="contact" method="post" action="padnaarPHPbestand.php" onsubmit="return controleer(this.form)">
In de Javascript code moet je dan ook "return true" zetten (als alle velden correct zijn ingevuld) en "return false" (als niet alle velden correct zijn ingevuld).
 
bedankt die methode ben ik net ook al eens tegengekomen.

Ik heb nog echter 1 probleem.

Ik ga dus de foutcontrole in javascript doen, vervolgens moet javascript dit submitten naar verwerp.php en daar wordt alles doorgestuurd.
MAAR als ik in php zeg "if (isset($_POST[verzenden']))" zegt die altijd dat dit NIET het geval is. de vraag is dus welke waarde ik kan opvangen in php als ik in js "document.forms[0].submit();" doe.
 
Dan kan je het beste de methode van Supersnail gebruiken, en de submit button de naam "verzenden" geven.

Of je voegt een hidden input veld toe aan je form en geef je de naam ''verzenden'', deze zet je dan op een value zoals "hoi" (met javascript voor het stukje document.forms[0].submit(); zodat hij door de check van isset-verzenden komt.
 
ik heb nu dit vanboven staan:
<form onsubmit="return controleer()" ... </form>

in mijn functie zeg ik dat hij alles moet gaan controleren, als er iets niet ingevuld is, of meerdere zaken niet, dan dan wordt dit in een alert weergegeven. en return ik een false

als alles juist is zeg ik: document.forms[0].action = 'verwerk.php';
document.forms[0].submit();} en return ik een true

maar zelfs bij return false gaat hij nog naar verwerk.php
 
Probeer dit eens:

[js]<script type="text/javascript">
function controleer()
{
if (document.getElementById("textveld").value == "") alert("Hee, je hebt het tekst-veld leeggelaten.");
else
{
document.getElementById("verborgen").value = "captainbri";
document.forms[0].submit();
}
}
</script>

<form name="contact" method="post" action="padnaarPHPbestand.php">
<table border="0"><tr>
<td>Naam:</td>
<td><input type="text" name="naam" size="40" maxlength="25" id="textveld" ></td></tr>
<tr><td></td><td><input type="button" value="Bericht verzenden" onclick="controleer()" />
<input type="hidden" id="verborgen" value="" name="verzenden"></td></tr>
</table>
</form>[/js]
 
Eureka! :d
Dank u wel voor alle moeite nu kan ik verder met m'n php dat moet wel lukken
 
MAAR als ik in php zeg "if (isset($_POST[verzenden']))" zegt die altijd dat dit NIET het geval is.

Dat is ook niet de beste manier om te controleren of een formulier verzonden is (niet elke browser stuurt dat in alle gevallen mee). De beste methode is
PHP:
if ($_SERVER['REQUEST_METHOD'] == "POST")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan