Toon posts:

javascript submitfunctie werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb een javascriptfunctie geschreven die bepaalde zaken checkt wanneer de gebruiker een formulier submit. Alles werkt; alerts worden gegeven wanneer het betreffende veld niet of niet goed is ingevuld. Alleen weigert de functie om uiteindelijk als alles goed is ingevuld het formulier te submitten. Ik heb twee alerts erin gezet (//check) die visueel weergeven waar de functie is. Ik heb ook verschillende delen van de functie weggelaten om te kijken waar het probleem zit. Maar ben daar niet verder mee gekomen. Hieronder is de code van mijn functie:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function Submitter(){
    if(document.formulier.voornaam.value == "") {
        alert('Vul a.u.b. een voornaam in');
    }else if(document.formulier.achternaam.value == "") {
        alert('Vul a.u.b. een achternaam in');
    }else if(document.formulier.emailadres_reactor.value == ""){
        alert('Vul a.u.b. een emailadres in');
    }else if(document.formulier.cvnaam.value == ""){
        alert('Vul a.u.b. uw c.v. in');
    }else if(document.formulier.cvnaam.value != ""){
        var bestand = formulier.cvnaam.value;
        if ((bestand.indexOf('.doc',0) == -1 && bestand.indexOf('.DOC',0) == -1)&&(bestand.indexOf('.txt',0) == -1 && bestand.indexOf('.TXT',0) == -1)&&(bestand.indexOf('.pdf',0) == -1 && bestand.indexOf('.PDF',0) == -1)&&(bestand != "")){
            alert("U kunt alleen bestanden met de extentie 'doc', 'txt' of 'pdf' uploaden.");
            return false;
        }
    }else{
        //check
        alert('2b');
        document.formulier.submit();
    }
    //check
    alert('3');
}


Ziet iemand wat ik hier fout doe?

Verwijderd

Gokje, je hebt:
HTML:
1
<input type="submit" name="submit">

in je formulier staan.

Zo niet: wat zijn de errormessages?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 03-02 22:51

Hangloozz

{ @$%&# }

voer je de functie uit met een href?:
code:
1
<a href="#" onclick="Submitter();">verstuur</a>

dan zou het kunnen zijn dat je de return false mist die voorkomt dat de hash uitgeveord wordt (anchor):
code:
1
<a href="#" onclick="Submitter();return false;">verstuur</a>


Daarnaast kan de aanwezigheid van een submit-button (<input-type='submit'>) roet in het eten gooien.

edit:
te laaat :)

[ Voor 17% gewijzigd door Hangloozz op 28-11-2003 10:44 ]

www.jurgroessen.nl


Verwijderd

Topicstarter
Nee, dat staat allemaal goed en ik weet nu ook al waarom het niet goed ging: het was niet goed genest. Het had er als volgt uit moeten zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Submitter(){
    if(document.formulier.voornaam.value == "") {
        alert('Vul a.u.b. een voornaam in');
    }else if(document.formulier.achternaam.value == "") {
        alert('Vul a.u.b. een achternaam in');
    }else if(document.formulier.emailadres_reactor.value == ""){
        alert('Vul a.u.b. een emailadres in');
    }else if(document.formulier.cvnaam.value == ""){
        alert('Vul a.u.b. uw c.v. in');
    }else if(document.formulier.cvnaam.value != ""){
        var bestand = document.formulier.cvnaam.value;
        if ((bestand.indexOf('.doc',0) == -1 && bestand.indexOf('.DOC',0) == -1)&&(bestand.indexOf('.txt',0) == -1 && bestand.indexOf('.TXT',0) == -1)&&(bestand.indexOf('.pdf',0) == -1 && bestand.indexOf('.PDF',0) == -1)&&(bestand != "")){
            alert("U kunt alleen bestanden met de extentie 'doc', 'txt' of 'pdf' uploaden.");
            return false;
        }else{
            document.formulier.submit();
        }
    }
}

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

je hoeft niet te nesten, en je submit hoef je niet met JS uit te voeren:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Submitter(form) {

  if (form.elements['voornaam'].value = '') {
    alert('Vul a.u.b. een voornaam in');
    return false;
  }

  if (form.elements['achternaam'].value = '') {
    alert('Voer a.u.b. een achternaam in');
    return false;
  }

  // etcetera

  return true;

}


met:

HTML:
1
2
3
4
<form method="post" action="form.php" onsubmit="return Submitter(this)">
<!-- je formulier -->
<input type="submit" value="submit" />
</form>


Vergeet niet serverside ook nog eens de input te checken!

Intentionally left blank