Wie weet hoe ze dit hebben gedaan? foutafhandeling input

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erwin b

Erwin b

27/08/2017 22:30:26
Quote Anchor link
Hallo,

Ik had gisteren al een topic gepost over een foutafhandeling en toen kwam ik toevallig vanavond dit tegen.

Bij dit formulier worden de eventuele fouten al gelijk weergegeven bij het verlaten van het input veld. Ik persoonlijk vind dit erg mooi want ik vind het wel eens vervelend als je ergens iets invult en het is verkeerd je dan ook gelijk weer je wachtwoord opnieuw kan invullen en dat heb je dan op deze manier niet.

Bij het contact formulier is het niet te zien maar bij het registratie formulier komt er ook een kruisje te staan in het input veld bij een foutmelding.

Wie weet hoe ze dit gedaan hebben?

https://www.welkoop.nl/klantenservice/contact
 
PHP hulp

PHP hulp

22/12/2024 19:36:27
 
- Ariën  -
Beheerder

- Ariën -

27/08/2017 22:38:01
Quote Anchor link
Kijk eens naar het onBlur event, of de .blur() functie in jQuery.
Die wordt aangeroepen als iemand zijn focus op een element verliest. Dan wordt een validatie aangeroepen, die een CSS-waarde geeft aan je het veld.

Voor jQuery raad ik de validaion plugin aan:
https://jqueryvalidation.org/files/demo/
Gewijzigd op 27/08/2017 22:40:41 door - Ariën -
 
Erwin b

Erwin b

27/08/2017 22:40:57
Quote Anchor link
-Ariën- bedankt voor de snelle reactie ik ga kijken.
 
Erwin b

Erwin b

28/08/2017 23:40:03
Quote Anchor link
Ik kwam er zo snel niet uit hoe ik de foutmelding van email adres bestaat al kon realiseren met de jQuery plugin. Daarom voorlopig nog even op de "ouderwetse" manier.

Alles werkt inmiddels en ook op de manier die ik wou, alleen.. Ik vraag me af of dit wel DE manier is omdat er best veel code is en dat is dan allemaal per invul veld. Is dit de goede manier?

Het is inmiddels deze controle geworden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$foutv = array();

    if(empty($_POST['firstname'])) {
    $foutv[] = 'Er is geen voornaam ingevuld.';
    unset($first_name);
    $fout['input']['firstname'] = TRUE;
    }
    elseif(!preg_match("/^[a-zA-Z ]*$/", $first_name)){
    $foutv[] = "Er is geen correcte voornaam ingevuld.";
    unset($first_name);
    $fout['input']['firstname'] = TRUE;
    }
if(!empty( $foutv ))
        {
            foreach($foutv as $fout_voornaam){
            $fout_voornaam;
           }
            
        }


En zo wordt die weergegeven achter het input veld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if(isset($fout_voornaam)) { echo htmlspecialchars($fout_voornaam); }?>
Gewijzigd op 28/08/2017 23:40:55 door Erwin b
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 23:43:21
Quote Anchor link
Quote:
Ik kwam er zo snel niet uit hoe ik de foutmelding van email adres bestaat al kon realiseren met de jQuery plugin.

Dan zou je een AJAX-request moeten doen naar een script die de beschikbaarheid van het mailadres controleert. Zo te zien zit er al een event ingebouwd in de jQuery Validation plugin die dit kan dien vanuit een rule.
Gewijzigd op 28/08/2017 23:51:56 door - Ariën -
 
Erwin b

Erwin b

28/08/2017 23:51:42
Quote Anchor link
Dat is snel :) Bedankt, ik ga kijken hoe een AJAX-request werkt. Is bovenstaande de goede manier? Nu is het een registratie formuliertje met maar 5 veldjes maar het lijkt me veel code voor grote formulieren.
 
- Ariën  -
Beheerder

- Ariën -

28/08/2017 23:52:25
Quote Anchor link
Ik heb mijn bericht even geüpdated. Ik zie dat jQuery Validator ook al ondersteuning biedt.
 
Erwin b

Erwin b

29/08/2017 00:03:20
Quote Anchor link
Wederom bedankt ik ga kijken.
 
Willem vp

Willem vp

29/08/2017 22:28:50
Quote Anchor link
In vanilla JavaScript zou je iets als dit kunnen doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
function validateField (field)
{
   if (field.value == niet goed) {
      field.setCustomValidity('Is niet goed');
      return false;
   }
   else if (field.value == op een andere manier niet in orde) {
      field.setCustomValidity('Is ook niet goed');
      return false;
   }
   field.setCustomValidity('');
   return true;
}

en dan in je formulier
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input name="veldnaam" type="text" onchange="validateField(this);">

of zelfs
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input name="veldnaam" type="text" onkeyup="validateField(this);" onchange="validateField(this);">
Gewijzigd op 29/08/2017 22:31:36 door Willem vp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.