Moven van een check naar een functie geeft een andere (foute) reactie. Hoe dit aanpakken ?
in mijn site heb ik de volgende code staan :
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$("form").submit(function(){
var errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
var err = 0;
if ($("#kastnaam").val() == "") {
errorMessage = errorMessage + " - Kast naam \n";
err = 1;
}
var errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
var err = 0;
if ($("#kastnaam").val() == "") {
errorMessage = errorMessage + " - Kast naam \n";
err = 1;
}
Op het moment van submit wordt mijn veld kastnaam gecheckt (die is leeg) en krijg ik idd de foutmelding dat ik het veld moet invullen.
Aangezien ik in mijn form zo een dikke 40 velden check, met een veel te lange jQuery code als gevolg, dacht ik zo slim te zijn dit te moven naar een functie alsvolgt :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
function checkValue(fieldname, fieldtype, message) {
switch(fieldtype) {
case "T" :
if ($("#" + fieldname).val() == '') {
errorMessage = errorMessage + " - " + message + " \n";
err = 1;
}
break;
}
}
$(document).ready(function(){
$("form").submit(function(){
checkValue("kastnaam", "T", "Kast naam");
window.alert(err);
}
}
function checkValue(fieldname, fieldtype, message) {
switch(fieldtype) {
case "T" :
if ($("#" + fieldname).val() == '') {
errorMessage = errorMessage + " - " + message + " \n";
err = 1;
}
break;
}
}
$(document).ready(function(){
$("form").submit(function(){
checkValue("kastnaam", "T", "Kast naam");
window.alert(err);
}
}
Er gebeuren nu echter twee heel bizarre dingen :
1. De code in de case wordt NIET gezien als een leeg veld. Nochthans als ik een alert doe van de val waarde, dan toont deze een lege waarde.
2. In de onderstaande window.alert krijg ik een 0 te zien. Dit komt waarschijnlijk doordat ik de variabelen op een verkeerde plaats maak ?
Wie heeft wat hulp voor me ?
Vriendelijke groeten en alvast bedankt,
Davy
Toevoeging op 22/10/2013 19:43:17:
Hallo allemaal,
ik was misschien wat te snel om deze te plaatsen, want ik denk dat ik de oplossing al gevonden heb.
Ik heb de code nu alsvolgt aangepast :
Code (php)
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
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
<script language="javascript">
var errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
var err = 0;
function checkValue(fieldname, fieldtype, message) {
switch(fieldtype) {
case "T" :
if ($("#" + fieldname).val() == "") {
errorMessage += " - " + message + " \n";
err = 1;
}
break;
case "N" :
if ($("#" + fieldname).val() == "") {
errorMessage += " - " + message + " \n";
err = 1;
}
else {
if (!$.isNumeric($("#" + fieldname).val())) {
errorMessage += " - " + message + " moet numeriek zijn \n";
err = 1;
}
}
break;
}
}
</script>
<script>
$(document).ready(function(){
$("form").submit(function(){
checkValue("kastnaam", "T", "Kast naam");
checkValue("aantal", "N", "Aantal");
}
}
</script>
var errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
var err = 0;
function checkValue(fieldname, fieldtype, message) {
switch(fieldtype) {
case "T" :
if ($("#" + fieldname).val() == "") {
errorMessage += " - " + message + " \n";
err = 1;
}
break;
case "N" :
if ($("#" + fieldname).val() == "") {
errorMessage += " - " + message + " \n";
err = 1;
}
else {
if (!$.isNumeric($("#" + fieldname).val())) {
errorMessage += " - " + message + " moet numeriek zijn \n";
err = 1;
}
}
break;
}
}
</script>
<script>
$(document).ready(function(){
$("form").submit(function(){
checkValue("kastnaam", "T", "Kast naam");
checkValue("aantal", "N", "Aantal");
}
}
</script>
Het enige nadeel wat ik er terug in vind is dat ik in de uiteindelijk check op het einde de waarde van errorMessage en err terug op de initiele waarden moet zetten :
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
if (err == 1) {
alert(errorMessage);
errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
err = 0;
return false;
}
else return true;
});
alert(errorMessage);
errorMessage = "Gelieve volgende velden in te vullen of de problemen op te lossen vooraleer verder te gaan : \n\n";
err = 0;
return false;
}
else return true;
});
Groetjes,
Davy
Gewijzigd op 22/10/2013 21:26:24 door Davy Carmans
Toevoeging op 22/10/2013 19:51:30:
Overigens een variabele die niet geset is vang je in JS af met:
Gewijzigd op 22/10/2013 19:52:19 door Ger van Steenderen
sorry voor de domme vraag, maar in mijn geval krijg ik nooit undefined terug, dus ik veronderstel dat de variabale wel herkend wordt als "ingevuld".
Of is het iets anders wat je bedoeld met "geset is" ?
Gewijzigd op 22/10/2013 21:25:01 door Davy Carmans
Ger bedoeld dat je het in je 1e bericht dmv de Wijzigen knop je script tussen code tags zet.
Voila seh, gebeurd. Sorry voor mijn dom-miteit...