Javascript browsergevoelig ?
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 type="text/javascript">
Functie_Geladen = false;
function Change_OnSubmit() {
if (Functie_Geladen != true) {
Functie_Geladen = true;
for (iii=0;iii<document.forms.length;iii++) {
document.forms[iii].setAttribute ("onsubmit","validate(); return no_errors");
}
}
}
function validate() {
no_errors = true;
for (ii=0;ii<document.forms.length;ii++) {
for (i=0;i<document.forms[ii].elements.length;i++) {
box = document.forms[ii].elements[i];
box_type = box.getAttribute("type");
box_name = box.getAttribute("name");
if (box_type= "text") {
if (!box.value) {
no_errors = false;
box.className = "error";
document.getElementById('error_box').innerHTML = "Gelieve de velden die met rood aangeduid zijn in te vullen !";
}else{
box.className = "";
}
}
}
return no_errors;
}
}
</script>
Functie_Geladen = false;
function Change_OnSubmit() {
if (Functie_Geladen != true) {
Functie_Geladen = true;
for (iii=0;iii<document.forms.length;iii++) {
document.forms[iii].setAttribute ("onsubmit","validate(); return no_errors");
}
}
}
function validate() {
no_errors = true;
for (ii=0;ii<document.forms.length;ii++) {
for (i=0;i<document.forms[ii].elements.length;i++) {
box = document.forms[ii].elements[i];
box_type = box.getAttribute("type");
box_name = box.getAttribute("name");
if (box_type= "text") {
if (!box.value) {
no_errors = false;
box.className = "error";
document.getElementById('error_box').innerHTML = "Gelieve de velden die met rood aangeduid zijn in te vullen !";
}else{
box.className = "";
}
}
}
return no_errors;
}
}
</script>
Ik kan geen javascript, maar weet wel dat het zich aan de browser aanpast.
Ben te lui om het zelf te testen
In IE wordt de functie validatie niet uitgevoerd.
Het veranderen van de onsubmit gebeurd wel. Dit heb ik getest en daarna opgevraagd met het GetAttribute commando waarmee ik in IE ook
kreeg
maar hij komt nooit in de functie terecht wat Firefox dan wel doet
Na wat rondvraag heb ik ontdekt dat de interpretatie voor beide browsers anders zijn... Weet er niemand iets om dit te gaan omzeilen ?
FireFox is gewoon zo'n minder aangenaam browser dat weer net even anders moet doen dan IE, hierdoor is de JavaScripter 2x zo lang bezig +.+ (weinig kans dat FF eerder JavaScript ondersteunde dan IE...)
Gewijzigd op 01/01/1970 01:00:00 door Zero Dead
hehe thx ffen checken ;)
ZeRoDeaD schreef op 02.12.2006 09:44:
probeer eens .class = 'what ever';
Dat is foute syntax. Die className is prima.
ZeRoDeaD schreef op 02.12.2006 09:44:
FireFox is gewoon zo'n minder aangenaam browser dat weer net even anders moet doen dan IE, hierdoor is de JavaScripter 2x zo lang bezig +.+ (weinig kans dat FF eerder JavaScript ondersteunde dan IE...)
FF minder aangenaam??? Hij is juist veel correcter in de ondersteuning van JavaScript en levert daarbij ook nog eens een keurige console met duidelijke foutmeldingen. Dat ben ik in IE nog nooit tegengekomen.
Edit:
De manier waarop je functies toekent aan het onsubmit-event van de formulieren is waarschijnlijk niet goed. Probeer liever iets als:
De manier waarop je functies toekent aan het onsubmit-event van de formulieren is waarschijnlijk niet goed. Probeer liever iets als:
Code (php)
1
2
3
4
5
2
3
4
5
for (iii = 0; iii < document.forms.length; iii++) {
document.forms[iii].onsubmit = function () {
return validate (this); // hier geef je het formulier als object mee, zodat je het verder in je validatiefunctie kunt gebruiken.
}
}
document.forms[iii].onsubmit = function () {
return validate (this); // hier geef je het formulier als object mee, zodat je het verder in je validatiefunctie kunt gebruiken.
}
}
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
(na enige aanpassing van de functie Validate ;) )
Thx for the replies
moet met var
dus
Waneer je een variabele set binnen een functie, maar voor de eerste keer daarvoor geen 'var' gebruikt, maakt hij de variabele globaal aan. Gebruik je wel 'var', dan is hij alleen lokaal (dus binnen de functie en dieper) beschikbaar.