[JS] javascript wordt niet uitgevoerd *

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nog eens wat verder gewerkt aan mijn site en nu ben ik op het volgende gekomen dat mijn javascript maar niet wil werken. Alles is juist gedaan maar het is precies of hij de .js file niet invoert. Ik heb het zo ingesteld dat als je geen tekstveld instelt dat hij een error geeft maar er gebeurt helemaal niets. Ik hoop dat iemand van jullie het probleem kan ontmaskeren?

Het staat op de website www.juvefc.tk

Dit is de code van de html pagina:

code:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="controle.js"></script>
<title>Untitled Document</title>
<
</head>

<body>
<fieldset >
<legend>
InschrijvingsFormulier </legend>
<form action="mailto: 123@hotmail.com" method="post" enctype="text/plain" >
<h1>Vul het onderstaande formulier in:</h1>
<table border="0" cellspacing="10">
<tr>
<td >Voornaam:</td>
<td><input type="text" name="Voornaam" size="20" id="Voornaam"/></td>
<td >Naam:</td>
<td><input type="text" size="20" name="Familienaam" id="Naam"/></td>
</tr>

<tr>
<td >Adres:</td>
<td>
<input type="text" size="20" maxlength = "25" name="Adres" id="Adres"/>
</td>
<td >E-mailadres:</td>
<td><input type="text" size="20" maxlength = "25" name="Email" id="Emailadres"/></td>
</tr>

<tr>
<td >Telefoonnummer:</td>
<td>
<input type="text" size="20" maxlength = "25" name="Telefoonnummer" id="Telefoonnummer"/>
</td>
</tr>

<tr>
<td >Geboortedatum:</td>
<td>
<select size="1" name="Dag">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
<option value="4" >4</option>
<option value="5" >5</option>
<option value="6" >6</option>
<option value="7" >7</option>
<option value="8" >8</option>
<option value="9" >9</option>
<option value="10" >10</option>
<option value="11" >11</option>
<option value="12" >12</option>
<option value="13" >13</option>
<option value="14" >14</option>
<option value="15" >15</option>
<option value="16" >16</option>
<option value="17" >17</option>
<option value="18" >18</option>
<option value="19" >19</option>
<option value="20" >20</option>
<option value="21" >21</option>
<option value="22" >22</option>
<option value="23" >23</option>
<option value="24" >24</option>
<option value="25" >25</option>
<option value="26" >26</option>
<option value="27" >27</option>
<option value="28" >28</option>
<option value="29" >29</option>
<option value="30" >30</option>
<option value="31" >31</option>
</select>

<select size="1" name="Maand">
<option value="Januari" >Januari</option>
<option value="Februari">Februari</option>
<option value="Maart">Maart</option>
<option value="April">April</option>
<option value="Mei">Mei</option>
<option value="Juni">Juni</option>
<option value="Juli">Juli</option>
<option value="Augustus">Augustus</option>
<option value="September">September</option>
<option value="Oktober">Oktober</option>
<option value="November">November</option>
<option value="December">December</option>
</select>
<select size="1" name="Jaar">
<option value="1991" >1991</option>
<option value="1992" >1992</option>
<option value="1993" >1993</option>
<option value="1994" >1994</option>
<option value="1995" >1995</option>
<option value="1996" >1996</option>
<option value="1997" >1997</option>
<option value="1998" >1998</option>
<option value="1999" >1999</option>
<option value="2000" >2000</option>
<option value="2001" >2001</option>
<option value="2002" >2002</option>
</select>
</td>
<td >Geboorteplaats:</td>
<td><input type="text" size="20" maxlength = "25" name="Geboorteplaats" id="Geboorteplaats"/></td>
</tr>


</table>
<table border="0" style="width:500" cellspacing="10">
<tr>
<td style="width:400px">Klik op <b>'Verzend'</b> om de inschrijving door te sturen: <br/><br/> </td>
<td style="width:100px"> <input type="button" value="verzenden" id="verzenden"/> </td>
</tr>
</table>
</form>
</fieldset>
</body>
</html>

Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Tip, gebruik [code][/code]-tags, dan heb je gelijk taghighlighting wat je stuk een stuk beter leesbaar maakt.

Maar kan het kloppen dat je hier nergens iets met javascript doet? Ik zie nergens een functie aangeroepen worden namelijk.
En je hebt sowieso een '<' teveel staan boven de sluittag van de head.

[ Voor 12% gewijzigd door TERW_DAN op 24-05-2009 10:27 ]


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Dat javascript moet je wel op een plek starten natuurlijk.
HTML:
1
<input type="button" OnClick="functie();" />

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RaZ schreef op zondag 24 mei 2009 @ 10:27:
Dat javascript moet je wel op een plek starten natuurlijk.
HTML:
1
<input type="button" OnClick="functie();" />
Moet ik dan tussen die haken controle.js plaatsen?

Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Geen idee, dat ligt aan je controle.js.

Het lijkt me dat het gewoon een functie is, die ingeladen wordt, en op het moment dat je het formulier wil versturen, op de button drukt, je eerst die check uitvoert.

Ik gaf je enkel een zetje in de juiste richting (althans, ik weet ook niet hoe je javascript er uit ziet). Je moet dus een functie aanroepen, en niet enkel zeggen tegen de client (de bezoeker) je moet dit script laden, en het vervolgens nooit uitvoeren. D.m.v. de OnClick voer je het script uit.

Je laadt dus eerst het script in. En daarna start je pas de functie. Zoals jij het net zegt, gebeurt er waarschijnlijk nog niets.

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 18:59

Haan

dotnetter

Verwijderd schreef op zondag 24 mei 2009 @ 10:35:
[...]

Moet ik dan tussen die haken controle.js plaatsen?
Nee, daar zet je de naam van de functie in het controle.js bestand die je aan wil roepen.

Zo te zien heb je dat anders gedaan in je script, jij hangt de functie aan de onclick van die button, dus dan moet je de exec() functie eerst een keer aanroepen. Je kan ook gewoon een functie valideer() o.i.d. maken met daarin de code voor je validatie en die gebruiken zoals RaZ aangeeft. (ik moest even een fatsoenlijke teksteditor installeren, net reinstall gedaan)
Je hebt een functie testennaam(), die moet je aanroepen bij de OnClick van de button.

@RaZ: hier is het script

[ Voor 19% gewijzigd door Haan op 24-05-2009 10:52 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Luqq
  • Registratie: Juni 2005
  • Laatst online: 19-09 14:23
Let trouwens wel heel goed op, heb ik zelf ook heel vaak problemen mee gehad: Als je geen fatsoenlijke java debugger hebt, stopt de code op het moment dat het een error tegenkomt zonder error af te geven of iets dergelijks. Dus een klein typfoutje bovenin je code kan er voor zorgen dat je hele functie niet meer werkt..

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Je gebruikt in je script de volgende code op regel 14:

JavaScript:
1
document.getElementById("verstuur").onclick = controleervelden;


Deze werkt niet, omdat de functie "controleervelden" bou jou "testnaam" heet. Daarnaast is dit geloof ik niet een manier om event handlers toe te voegen die in alle browsers goed werkt.

Je wilt ook geen "onclick" gebruiken op de knop maar "onsubmit" op het formulier omdat je een formulier op meer manieren kan verzenden dan door de muis op een knop te klikken.

De manier waarop je velden controleert is ook niet erg waterdicht, in plaats van kijken of hij niet leeg is kun je beter een minimale lengte vragen, en je foutmeldingen aan elkaar plakken in plaats

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
var message = '';

if(mail.length < 7) {
message += "- Emailadres te kort\n";
}

if(message != '') {
 alert("Verbeter de volgende fouten:\n" + message);
}

return false;


Verder is de return false hier uitermate belangrijk, omdat het formulier anders direct na de foutmelding alsnog wordt verzonden. Je event handler moet daarom ook als volgt zijn; met een "return" er voor:

HTML:
1
<form onsubmit="return controleervelden()">

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.

Pagina: 1