Hoi,

Ik ben met iets bezig, waarbij je als je op een bolletje kleur kiest, je die kleur selecteert. Dat gebeurt allemaal wel, maar nu moet het zo zijn, dat je maar één kleur kan selecteren. Dus als je op een ander bolletje klikt, moet de ander weer selecteerbaar worden.


function setColor(kleurEn, kleurNl)
{
	if(document.getElementById("" + kleurEn + "").src == "images/blokjes/" + kleurEn + ".gif") {
		document.getElementById("" + kleurEn + "").src = "images/blokjes/" + kleurEn + "_v.gif";
	} else {
		document.getElementById("" + kleurEn + "").src = "images/blokjes/" + kleurEn + ".gif";
	}
	
	var kleurenarray = new Array('blue', 'brown', 'dblue', 'dgreen', 'dmblue', 'dorange', 'dpurple', 'green', 'gryel', 'mblue', 'mgreen', 'mpink', 'mpurple', 'mturkois', 'myellow', 'orange', 'pink', 'purple', 'red', 'turkois', 'yellow');
	
	foreach (array as kleur)
	{
		if(document.getElementById(kleur).src == "images/blokjes/" + kleur + "_v.gif") {
			if(kleurEn==kleur) {
			
			} else {
				document.getElementById(kleur).src = "images/blokjes/" + kleur + ".gif";
			}
		}
	}
	
	document.getElementById('boxkleur').value = kleurNl;
}


Zo zou het er dus eigenlijk uit moeten zien, als de foreach functie dus valid is in JS. Maar dat issie niet, tenminste, hij errort als ik hem laat staan.
Iemand een andere oplossing hiervoor?

Alvast bedankt,

- Djemo
Je moet for gebruiken en dan de .length gebruiken van de array.
Hartelijk dank!

Ik zat al hier te kijken.. maar ik met m'n domme kop zag niet dat ik die for beter kon gebruiken.. :P

Nogmaals, hartelijk dank! :)
Misschien mag ik nog niet bumpen, maar ik ben tegen een nieuw probleem aangelopen. Het gaat over hetzelfde stukje script, alleen ditmaal over de laatste regel:

document.getElementById('boxkleur').value = kleurNl;

Het element 'boxkleur' is een hidden input veld, en moet dus door die bolletjes de waarde krijgen van de bolletjes. Alleen dit voert hij niet uit. Ik controlleer of het veld leeg is, en dat is het steeds.. Dus het veld krijgt niet de waarde die hij zou moeten krijgen.

Dit is het script wat ik nu heb:

function setColor(kleurEn, kleurNL)
{
	if(document.getElementById("" + kleurEn + "").src == "images/blokjes/" + kleurEn + ".gif") {
		document.getElementById("" + kleurEn + "").src = "images/blokjes/" + kleurEn + "_v.gif";
	} else {
		document.getElementById("" + kleurEn + "").src = "images/blokjes/" + kleurEn + ".gif";
	}
	
	var kleurenarray = new Array('blue', 'brown', 'dblue', 'dgreen', 'dmblue', 'dorange', 'dpurple', 'green', 'gryel', 'mblue', 'mgreen', 'mpink', 'mpurple', 'mturkois', 'myellow', 'orange', 'pink', 'purple', 'red', 'turkois', 'yellow');
	
	for (i=0; i <= kleurenarray.length; i++)
	{
		if(document.getElementById(kleurenarray[i]).src == "images/blokjes/" + kleurenarray[i] + "_v.gif") {
			if(kleurEn==kleurenarray[i]) {
			
			} else {
				document.getElementById(kleurenarray[i]).src = "images/blokjes/" + kleurenarray[i] + ".gif";
			}
		}
	}
	
	document.getElementById('box_kleur').innerHTML = "<input type='hidden' name='kleur' id='boxkleur' value='"+kleurNL+"' />";
}

Nu is het element box_kleur een divje om het input veld heen.. Ik probeerde het dus op een andere manier, maar ook die manier werkt, jammer genoeg, niet..

Iemand die een oplossing weet?

Alvast bedankt,

- Djemo

EDIT: Heb de titel even aangepast naar het nieuwe probleem

Reageren