Form validatie met javascript en php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik Rijk

Erik Rijk

20/03/2012 22:00:47
Quote Anchor link
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php

    if( $_SERVER['REQUEST_METHOD'] == "POST" )
    {

        var_dump( $_POST );
    }


?>



<!DOCTYPE html>
<html>
    <head>
        <title></title>
        
        <link rel="stylesheet" href="css/common.css" media="screen" />
        
        <script type="text/javascript" src="js/common.js"></script>
        
    </head>
<body>

    <div class="top"></div>
    
    <div class="box-container">
        <div class="box-top">Inloggen</div>
        <div class="box-content">
            <form name="form_login" id="form_login" method="post" action="">
                <div class="box-content-div">
                    <label for="username">Gebruikersnaam:</label>
                    <label for="password">Wachtwoord:</label>
                    <label>&nbsp;</label>
                </div>
                <div class="box-content-div">
                    <input type="text" id="username" name="username" value="" size="40" />
                    <input type="password" id="password" name="password" value="" size="40" />
                    <div style="line-height: 30px;">
                        <div style="float: left; padding-top: 10px;">
                            <input type="checkbox" id="remember" name="remember" value="" />
                        </div>
                        <div style="float: left;">
                            &nbsp;Bewaar login informatie
                        </div>
                    </div>
                    <input type="button" id="submit" name="submit" value="Inloggen" onclick="validateForm();" />
                </div>
            </form>
        </div>
    </div>

</body>

</html>


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
20
21
22
23
    function validateForm()
    {
        var oSubmit = document.getElementsByTagName( "form" );
        var oInputs = document.getElementsByTagName( "input" );
        var sError     = false;
        
        for( i = 0; i < oInputs.length; i++ )
        {
            if( oInputs[i].getAttribute( "type" ) !== "button" && oInputs[i].getAttribute( "type" ) !== "checkbox" )
            {
                oInputs[i].style.border = "1px solid #D1D1D1";
                if( oInputs[i].value == "" )
                {
                    oInputs[i].style.border = "1px solid red";
                    sError = true;
                }
            }
        }
        if( false === sError )
        {
            oSubmit[0].submit;
        }
    }


Ik wil graag dat de PHP validatie verder gaat nadat javascript geen "fouten" terug geeft, maar na de js validatie gebeurt er niks.. Iemand enig idee waar ik de fout in ga?
 
PHP hulp

PHP hulp

25/11/2024 02:35:41
 
Jaron T

Jaron T

20/03/2012 22:03:25
Quote Anchor link
- waarom gebruik je de s als prefix van een boolean?
- probeer eens if( false == sError ) ipv === voor het vergelijken van een boolean
- plaats eens een console.log of een alert binnen je laatste if.
- submit is een functie, geen property.. dus oSubmit[0].submit().
 
Erik Rijk

Erik Rijk

20/03/2012 22:06:38
Quote Anchor link
Ik was aan het kijken wat het beste zou werken en toen heb ik op dat moment even geen aandacht besteed aan de prefix. Heb deze ondertussen wel even aangepast.

Scripting komt de if wel in maar volgende foutmelding met getriggerd wanneer ik oSubmit[0].submit() gebruik:

Fout: oSubmit[0].submit is not a function
Bronbestand: http://test.local/js/common.js
Regel: 22
 
Jaron T

Jaron T

20/03/2012 22:09:11
Quote Anchor link
Ik zou daarom adviseren om je form gewoon een name te geven en vanuit daar de submit uit te voren met document. ervoor;

document.myform.submit(); (http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml)

Normaal doe ik dit altijd met het jQuery framework (zou ik sowieso adviseren voor het valideren van form's).
 
Erik Rijk

Erik Rijk

20/03/2012 22:24:22
Quote Anchor link
Ook dan krijg ik:

Fout: document.form_login.submit is not a function
Bronbestand: http://test.local/js/common.js
Regel: 22

Wat doe ik verkeerd aan de hand van mijn code?
 
Reshad F

Reshad F

21/03/2012 00:20:31
Quote Anchor link
even een tip je kan hiervoor beter jQuery gebruiken scheelt behoorlijk veel regels. en is veel makkelijker denk ik omdat je minder script hebt maak je ook minder fouten.

als je een JS form validatie wilt heb ik er 2 liggen die je heel makkelijk kan aanpassen.
 
Kris Peeters

Kris Peeters

21/03/2012 10:09:34
Quote Anchor link
Het probleem is de button

<input type="button" id="submit" name="submit" value="Inloggen" onclick="validateForm();" />

Haal die id="submit" en name="submit" weg. Of geef ze gelijk welke andere naam.
(EDIT: de id kan geen kwaad, de name wel)

Die naam submit komt in conflict met de functie submit()

lijn 21 wordt dan
oSubmit[0].submit();
Gewijzigd op 21/03/2012 12:19:03 door Kris Peeters
 



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.