Les 9: formulier controle met javascript.



Vergelijkbare documenten
Foutcontrole met Javascript

Formulier maken en opvangen met php

Formulieren maken met Dreamweaver CS 4/CS 5

HTML. Formulieren. Hans Roeyen V 3.0

Voor vragen: of mail naar

Formulieren maken met Dreamweaver CS 4

Dynamische Websites. Week 2

Les 15 : updaten van gegevens in de database (deel2).

<input type="text" name="veldnaam" size="20" maxlength="30" value="inhoud veld">

Websitecursus deel 3 JavaScript

Webapplication Security

Gebruikershandleiding voor: Beperkte Password protectie met JavaScript

Oplossingen overzicht PHP. Oplossing KPN opgave, zonder testen van POST

Lab Webdesign: Javascript 7 april 2008

HTML in Outlook Hoe zorgt u ervoor dat uw goed in beeld komt?

Afrekenen via de PayPro HTML PRODUCT API. op uw eigen website. (voor een ingesteld product in uw account) Versie 1.0

Formulieren. Best practices

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Handleiding RS Form! 1.0.4

WEBSITE-DESIGN CHRIS VERMAAS & FJODOR VAN SLOOTEN B

Javascript oefenblad 1

Documentatie. InstantModules Q42. Versie 1.1

ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card)

Abonnementen en Termijnbetalingen met de HTML INCASSO API. in uw eigen betaalomgeving. (voor een ingesteld product in uw account) Versie 1.

HTML Graphics. Hans Roeyen V 3.0

oefeningen opstellen met GeoGebra en javascript

Een formulier ontwerpen

Les W-04: Een introductie in PHP

B3 Programmeren - PHP

ChainWise digitaal factureren

In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip:

Formulieren en waarden posten naar een view

Een ASP.NET applicatie opzetten. Beginsituatie:

Gebruikershandleiding

AutoTrack.nl. Handleiding Implementatie Voorraadlijst

PhPlist Gebruikers Handleiding

Handleiding ChainWise Digitaal factureren

JSN UniForm-Joomla 3 handleiding

VBA voor doe het Zelvers - deel 10

Taak Versleutelen en dan weer terug... 1

XITEFORCE. Formulier generator.

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008

1. De consument klikt op de «Betalen met ideal» knop op de website van de winkelier.

PHP tekst-bewerkingen, uploaden csv-bestanden import/eport

AFO 142 Titel Aanwinsten Geschiedenis

Handleiding enquetemaken.be

Nu de afbeeldingen, de bestanden zijn geplaatst, de styling is geregeld en de templates aanwezig zijn, kunt u een mailing maken.

Aanleveren van te verzenden sms berichten aan SMS Via

GoogleMapsGoogleMapsGoogleMaps GoogleMapsGoogleMapsGoogleMaps GoogleMapsGoogleMapsGoogleMaps

Katholieke Hogeschool Kempen ASP

Taak Onderzoekt en gij zult vinden Inhoud

Handleiding ZorgMail Secure - Webmail

Externe pagina s integreren in InSite en OutSite

Installatie Handleiding Alimentatie Rekendisk Sdu Uitgeverij / A. Koppenaal

File Uploads met standaard ASP.NET

Lined Content Management System v.2 (LCMS 2)

Versie 0.4. Documentatie Onsweb Club plugin voor KNKV verenigingen. Laatste wijziging: 19 juli 2012 Auteurs: Marien Dongstra, Sebastian Huisman

Digitaal certificaat Ondertekenen en encryptie. De meest recente versie van dit document kunt u vinden op:

Interactieve formulieren met gedragingen

Programmeren voor het web met PHP

Figuur 1 HTML-pagina opvragen

Dynamiek met VO-Script

ZorgMail Secure

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

Intern communicatie systeem voor de horeca

Kantoren Hierin kunt u instellingen aangaande uw eigen Basecone kantooromgeving

Een app (webapplicatie) in php voor het berekenen van de inhoud van een balk

Clang Release Notes. created by

Beschrijving functioneel en technisch design van de website

Quick Guide VivianCMS

BRICONweb voor de club

Week 1 1/4. Week 1 2/4

Handleiding TAPI Driver

Menu item Mijn Account Onder mijn account kun je je bestelling(en) en adres gegevens bekijken en aanpassen.

Overige transacties 1 (Excel 2002 en 2003)

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at

Auteur: Niels Bons. Handleiding Koepeldatabase Zakelijk toerisme: aanmelden organisatie. 2014, Provincie Fryslân. Uitgegeven in eigen beheer

Een website maken met databasetoegang.

AJAX (XMLHttpRequest)

Contents Documentatie Arbitrage... 1 Het menu... 2 Bulk Planning... 3 Cursisten... 7 Scheidsrechters... 7 Teams Planning teams...

Transcriptie:

Les 9: formulier controle met javascript. Javascript is erg veel gebruikt bij internet toepassingen. In tegenstelling tot PHP, wat een server side scripting is, is java client side scripting. Dwz, niet de server gaat de scripting uitvoeren maar de browser gaat deze scripting uitvoeren. Toepassing. We gebruiken het formulier van de vorige les. Wanneer de gebruiker de gegevens zal verzenden en de velden niet ingevuld heeft gaan het volgende resultaat genereren. Een typische toepassing van een javascript controle is een window dat weergegeven wordt, hier worden dan vaak de foutmeldingen in weergegeven.

Je kan met javascript echter heel wat meer dan enkel deze venstertjes genereren om foutmeldingen te tonen. Deze venstertjes zijn trouwens erg ongebruiksvriendelijk. In ons voorbeeld zie je dat we de velden die niet ingevuld zijn een rode markering gaan geven. Ook de tekst bij het invul venster gaan we aanpassen met een correcte foutmelding. Dit kunnen we doen met DOM scripting. Javascript laat ons toe de DOM structuur van het document aan te passen. Code voor het formulier. <form name="myform" id="myform" action="les9_ok.html" method="post" onsubmit="return checkform(this);return null;"> <label for="naam" id="naamlabel">naam</label> <input type="text" name="naam" id="naam" class="txt" /> <label for="voornaam" id="voornaamlabel">voornaam</label> <input type="text" name="voornaam" id="voornaam" class="txt" /> <label for="email" id="emaillabel">email</label> <input type="text" name="email" id="email" class="txt" /> <br class="clear" /> <input type="submit" name="submit" value="submit" class="btn" /> <input type="reset" name="reset" value="reset" class="btn" /> </form> Eerst en vooral moeten we ervoor zorgen dat we elk element specifiek moeten kunnen aanspreken. Om dit te kunnen doen moeten we ervoor zorgen dat onze elementen uniek zijn. Dit doen we door een id attribuut toe te voegen. We voegen een id attribuut toe aan de labels en aan de invoer velden. Deze staan in het groen en vet aangeduid hierboven in de code. Javascript oproepen. Om een javascript de controle te laten uitvoeren voor ons formulier de gegevens zal verzenden moeten we dit script oproepen bij het versturen van de gegevens. Dit doen we met de onsubmit. Deze wordt toegevoegd in de form tag van ons formulier. <form name="myform" id="myform" action="les9_ok.html" method="post" onsubmit="return checkform(this);return null;"> Dit zorgt ervoor dat de functie checkform die we plaatsen in ons javascript bestand (.js bestand) uitgevoerd zal worden. Alvorens de gegevens verstuurd worden naar de pagina, vermeld in de action van het formulier.

Js bestand Een js bestand, is een javascript bestand. We kunnen onze javascripts in een externe file plaatsen en deze oproepen op de pagina s waar we deze nodig hebben. Dit zorgt voor een ordelijke structuur en makkelijker te onderhouden code. Best plaats je altijd je javascripts in externe bestanden. We maken een nieuw bestandje aan en noemen dit formvalidation.js. Dit is een javascript file en hierin gaan we ons script plaatsen voor het controleren van ons formulier. In de head van onze php pagina plaatsen we de volgende regel, om het javascript bestand op te roepen. <script type="text/javascript" src="formvalidation.js"></script> Het controle script Om onze gegevens van het formulier te controleren gaan we een functie schrijven, deze zal ons een true terug geven wanneer alle data correct is, een false wanneer data niet correct is ingevuld. Wanneer deze functie een true terug geeft, zal de data vervolgens verzonden worden naar de pagina, vermeld in het action atribuut van ons formulier. Wanneer onze functie echter een false terug stuurt, zullen de gegevens niet verzonden worden, onze foutmeldingen zullen echter getoond worden en de gebruiker moet zijn gegevens aanpassen. Het script: We maken een functie. function checkform ( form ) { uit te voeren code komt hier. We gebruiken een variabele postmessage en plaatsen deze standard op true. Naarmate we nu vervolgens de controles gaan toevoegen gaan we deze variabele op false plaatsen wanneer de invoer niet correct is. function checkform ( form ) { var postmessage = true;

return postmessage; We controleren als naam ingevuld is, dit doen we: if (form.naam.value == ""){ uit te voeren code komt hier Form.naam.value: hiermee vragen we in javascript de waarde op van het tekstveld naam. Wanneer deze waarde leeg is, is er echter geen naam ingevuld. if (form.naam.value == ""){ document.getelementbyid( naam ): De functie getelementbyid() Dit is een veelgebruikte funtie in javascript. Als we de naam even ontleden spreekt deze voor zich. Get + Element + By + Id > deze functie gebruiken we om een specifiek element op de pagina te selecteren. Aan het begin van deze les hebben we ervoor gezorgd dat elk element uniek is op deze pagina. We hebben hiervoor het id attribuut toegevoedg! Dmv van deze functie kunnen we nu dit element gaan aanspreken en de eigenschappen van dit element gaan wijzigen. Dit doen we met DOM scripting. Een leeg tekstveld vaan we een rode rand geven, dat doen we als volgt. We spreken het element naam aan, dit is het invulveld van ons formulier, waar de gebruiker zijn naam moet invullen. Hiervan gaan we de border een rode kleur geven. Het volgende wat we gaan doen is de melding geven. Hiervoor gaan we het label attribuut aanpassen. We kunnen met DOM scripting de inhoud van elementen gaan veranderen. Dit doen we met innerhtml. document.getelementbyid("naamlabel").innerhtml = 'naam: verplicht in te vullen'; We spreken het label attribuut aan, dit weer door het id, wat we gegeven hebben aan dit attribuut in de html code. Vervolgens gebruiken we de functie innerhtml en op deze manier veranderen we de tekst inhoud van dit label. De volledige code is momenteel als volgt:

if (form.naam.value == ""){ document.getelementbyid("naamlabel").innerhtml = 'naam: verplicht in te vullen'; Wanneer deze code uitgevoerd wordt wil het zeggen dat de gebruiker zijn naam niet ingevuld heeft. Wanneer dit het geval is, moeten we ook de variabele postmessage op false plaatsen. Dit om te verhinderen dat het formulier onze gegevens zal verzenden. Dit doen we met postmessage = false ;. Wanneer een gebruiker meerdere malen zijn gegevens moet veranderen of aanpassen in het formulier, moeten we er ook voor zorgen dat wanneer de gegevens juist ingevuld staan, dat de velden gereset worden en terug hun oorspronkelijke lay out aannemen. Om dit te doen gaan de onze if structuur uitbreiden met de else, hierin gaan we de stijlregels terugplaatsen zoals het hoort. if (form.naam.value == ""){ document.getelementbyid("naamlabel").innerhtml = 'naam: verplicht in te vullen'; else { document.getelementbyid("naamlabel").innerhtml = 'naam:'; document.getelementbyid("naam").style.bordercolor='#666'; Boven staande stukje code is alles wat we nodig hebben om de controle uit te voeren op het veld waar de gebruiker de naam moet invullen. Ons formulier heeft echter 3 velden, een naam, voornaam en email. Deze moeten we dus alle 3 op deze manier gaan controleren. De volledige code is: function checkform ( form ) { var postmessage = true; if (form.naam.value == ""){ document.getelementbyid("naamlabel").innerhtml = 'naam: is verplicht in te vullen'; else {

document.getelementbyid("naamlabel").innerhtml = 'naam:'; document.getelementbyid("naam").style.bordercolor='#666'; if (form.voornaam.value == ""){ document.getelementbyid("voornaam").style.bordercolor='red'; document.getelementbyid("voornaamlabel").innerhtml = 'voornaam: is verplicht in te vullen'; else { document.getelementbyid("voornaam").style.bordercolor='#666'; document.getelementbyid("voornaamlabel").innerhtml = 'voornaam:'; if (form.email.value == ""){ document.getelementbyid("email").style.bordercolor='red'; document.getelementbyid("emaillabel").innerhtml = 'email: is verplicht in te vullen'; else { document.getelementbyid("email").style.bordercolor='#666'; document.getelementbyid("emaillabel").innerhtml = 'email:'; if(form.email.value!= ""){ var str=form.email.value; var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66)\.([az]{2,6(?:\.[a-z]{2)?)$/i if (filter.test(str)){ document.getelementbyid("emaillabel").innerhtml = 'email:'; document.getelementbyid("email").style.bordercolor='#666'; else{ document.getelementbyid("emaillabel").innerhtml = 'email: je moet een geldig emailadres invullen'; document.getelementbyid("email").style.bordercolor='red'; return postmessage;