script herkent form niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Patrick Bdo

Patrick Bdo

20/05/2014 16:37:55
Quote Anchor link
Ik probeer een inlog te maken met javascript, maar bij de eerste stukje loop ik al vast ;(

Javascript herkent het form niet namelijk.
Met onderstaande code is het niet de bedoeling dat je door kan klikken met submit.
Maar ik krijg gewoon een ? achter de url na klikken op de submit button.

login_form heb ik ge-copy/pasted dus geen typefout.
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

    <form id="login_form" method="post" action="?">

        <input type="text" class="form-control" id="naam" placeholder="Gebruikersnaam" />

        <input type="password" class="form-control" id="password" placeholder="Wachtwoord" />

        <input type="submit" value="login" />
    </form>

<script type="text/javascript">
    $(function(){
        
        $("#login_form").submit(function(event){
            event.preventDefault();
        }
        
    });

</script>

Dit heb ik ook geprobeerd, $("#login_form").on('submit', function(event){

en <input type="button" value="login" /> werkt ook niet

Ik heb jQuery 1.11 en wordt geladen in chrome (te zien in tabblad Network)

Hopelijk kunnen jullie mij verder helpen.
Gewijzigd op 20/05/2014 16:39:36 door Patrick Bdo
 
PHP hulp

PHP hulp

22/12/2024 18:12:43
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/05/2014 17:05:19
Quote Anchor link
Je gebruikt JQuery. Ik neem aan dat je de JQuery library wel invoegd?
Verder zou je in de functie achter event.preventDefault(); ook return false; kunnen zetten.
Daarnaast is er ook een andere methode namelijk je <input type="submit" wijzigen naar een type="button"

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
    <form id="login_form" method="post" action="?">

        <input type="text" class="form-control" id="naam" placeholder="Gebruikersnaam" />

        <input type="password" class="form-control" id="password" placeholder="Wachtwoord" />

        <input type="button" id="login-button" value="login" />
    </form>

<script type="text/javascript">
    $(function(){
        
        $("#login-button").click(function(event){
            alert('test');
        }
        
    });

</script>
Gewijzigd op 20/05/2014 17:11:30 door Frank Nietbelangrijk
 
Patrick Bdo

Patrick Bdo

20/05/2014 19:51:42
Quote Anchor link
Ja jQuery wordt geladen volgens chrome. Onder tabblad Network staat OK achter jquery.js

type="button" id="login-button" wordt wel gezien

maar ga ik een stap verder dan blijft <form id> niet gezien worden.

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
    <form id="login_form"  method="post" action="<?=site_url('user/login')?>">

        <input type="text" id="naam"  />

        <input type="password" id="password"  />

        <input type="submit" value="login" />
    </form>

<script type="text/javascript">
    $(function(){
        
        $("#login_form").submit(function(event){

            // event.preventDefault();
            var url = $(this).attr('action');
            var postData = $(this).serialize();
            
            $.post(url, postData, function(0) {
                
            }, 'json');
        }
        
    });
</script>  


user.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    public function login(){
        
        print_r($_POST);
        
    }


Array blijft leeg
Ik zie echt niet wat er fout gaat.
Het is jquery met codeIgniter trouwens.

Als ik het volgende doe hoor ik toch een alert te krijgen?
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
    <form id="login_form"  method="post" action="?">

        <input type="text" id="naam"  />

        <input type="password" id="password"  />

        <input type="submit" value="login" />
    </form>

<script type="text/javascript">
    $(function(){
        
        $("#login_form").submit(function(event){

            alert('test'):
        }
        
    });
</script>
[\code]
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/05/2014 22:02:15
Quote Anchor link
ja je zou gewoon een alert moeten krijgen. krijg je nog meldingen in de Console (F12) van Chrome?
 
Patrick Bdo

Patrick Bdo

21/05/2014 08:26:57
Quote Anchor link
Nee, console blijft leeg.
Ik ga de inlog wel met PHP maken.

Kan het zijn dat javascript bug-gevoeliger is dan PHP?
Of moet ik de fout echt bij mezelf zoeken? Ik zie de fout niet maar doe vast iets verkeerds.
 
- Ariën  -
Beheerder

- Ariën -

21/05/2014 08:56:18
Quote Anchor link
Heb je anders geen testcase? Desnoods even aanmaken op JSFiddle?
 
Bart V B

Bart V B

21/05/2014 08:59:21
Quote Anchor link
Volgens mij moet er een name in het input veld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
< input type="text" id="username" name="username" >
 
Jacco Engel

Jacco Engel

21/05/2014 09:19:37
Quote Anchor link
Je zou kunnen proberen om je code pas uit te voeren als je document klaar is :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
    $(document).ready(function(){
        
        $("#login_form").submit(function(event){

            alert('test'):
        }
        
    });
</script>


Makkelijke manier om te testen of dit het probleem oplost is overigens dit deel even op je console uitvoeren als je pagina geladen is :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
        $("#login_form").submit(function(event){

            alert('test'):
        }


Sidenote : Je login is wel het laatste wat je in javascript wil maken
Gewijzigd op 21/05/2014 09:20:51 door Jacco Engel
 
- Ariën  -
Beheerder

- Ariën -

21/05/2014 09:57:13
Quote Anchor link
Een inlog in JS kan prima, zolang de inlogprocedure maar serverside wordt gevalideerd. ;)
 
Jacco Engel

Jacco Engel

21/05/2014 13:45:27
Quote Anchor link
Aar , mischien , maar dan moet je alleen de submit doen met JS en dan je form versturen. Zodra je je gegevens over AJAX gaat posten ben je al de sjaak.
 



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.