Ik heb namelijk een validatie script geschreven hier onderaan te vinden die enkel werkt in Firefox(2.0) en niet in IE 6.0... Weet iemand hoe dit zou kunnen ?


<body onMouseOver="Change_OnSubmit();">


<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>
Ik kan geen javascript, maar weet wel dat het zich aan de browser aanpast.
Wat voor errors krijg je.

Ben te lui om het zelf te testen
nu ja in feite geen errors :)
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

validate() ; return no_errors


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 ?
getAttribute & className -> volgens mij kent IE deze functies niet... getElementById zou voor getAttribute volgens mij ook gewoon kunnen werken... className - hmmm probeer eens .class = 'what ever';

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...)
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:
[/edit]

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.
	}
}
Dank je jan, dat is het helemaal ;)
(na enige aanpassing van de functie Validate ;) )
Thx for the replies
<?
Functie_Geladen = false;
?>
moet met var
dus
<?
var Functie_Geladen = false;
?>
hoeft niet.
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.

Reageren