Ga naar inhoud

Aanbevolen berichten

Geplaatst:

Hey,

Ik schreef onlangs een script in php dat gebruikt wordt om een mailform af te handelen. Mijn vraag is nu of het mogelijk is om bij foute invoer terug te keren naar de form (en de reeds gegeven invoer te behouden).

De moeilijkheid is echter dat de form gewoon op de index pagina staat maar hidden is. Het komt er slechts op nadat de javascript functie "showform()" wordt aangeroepen (door op button te klikken).

Wat ik nu kan doen is gewoon redirecten naar de homepage bij het maken van een fout in de form. Dit is echter niet de bedoeling. Is het niet mogelijk om bvb in de url balk de homepage+mijn javascript showform() aan te roepen? Of is er via php een minder omslachtige methode?

Bedankt op voorhand,

frédéric

Geplaatst:

Je kan dat met PHP doen maar dat kan ik niet geven.

Maar wel met javascript.

Zodra je op verzendknop druk zal javascript controleren of alles is voldaan anders wordt de client naar de juist regel gebracht.

In formulier dient je die toe te voegen: onSubmit="return Controle(this) "

Bijvoorbeeld: <FORM NAME="Myform" ACTION = "wat hij moet doen" METHOD="POST" onSubmit="return Controle(this) ">

<script type="text/javascript">

function Controle(form) {

if (form.Afhaaldatum.value == ""){

alert( "Vergeten datum in te vullen?" );

form.datum.focus();

return false ;

}

if (form.Voornaam.value == ""){

alert( "Vergeten voornaam in te vullen?" );

form.Voornaam.focus();

return false ;

}

</script>

Geplaatst:

Hmm als ik dit doe, dan controleert hij wel, maar het php script wordt toch uitgevoerd.

Dus eerst verschijnt "vergeet datum in te vullen" maar als je op ok klikt gaat gij toch naar de action.php.

En wordt de form verzonden.

Geplaatst: (aangepast)

OK dat is opgelost, enkel de focus() functie had ik niet goed aangeroepen :)

Verder zit ik nu nog met één probleem. De eerste keer dat de from wordt ingevuld werkt de javascript validatie niet, wat er ook wordt ingevuld hij gaat direct over naar de action method. Indien we hem hierna nog eens invullen, werkt hij wel. Eerder vreemd als je het mij vraagt :)

Heb dit net even verder bekeken, en heb ontdekt dat dit probleem enkel in firefox het geval is. In internet explorer en google chrome werkt het perfect

aangepast door frederic202
Geplaatst:

Dat had ik al aangepast :)

Dit is mijn code

<script type="text/javascript">

function Controle(form) {

if (form.email.value == ""){

alert( "Please enter a valid email address" );

form.email.focus();

return false ;

}

var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

if(!emailPattern.test(form.email.value))

{ alert( "Not a valid email format" );

form.email.focus();

return false ;

}

if (form.name.value == ""){

alert( "Please enter a name/company" );

form.name.focus();

return false ;

}

if (form.comments.value == ""){

alert( "Please enter a question/comment" );

form.comments.focus();

return false ;

}

return true;

}

</script>

Geplaatst:

Probeer eens zonder return true;

<script type="text/javascript">

function Controle(form) {

if (form.email.value == ""){

alert( "Please enter a valid email address" );

form.email.focus();

return false ;

}

var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

if(!emailPattern.test(form.email.value))

{ alert( "Not a valid email format" );

form.email.focus();

return false ;

}

if (form.name.value == ""){

alert( "Please enter a name/company" );

form.name.focus();

return false ;

}

if (form.comments.value == ""){

alert( "Please enter a question/comment" );

form.comments.focus();

return false ;

}

}

< /script>

Gast
Dit topic is nu gesloten voor nieuwe reacties.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.