webForumDet fria alternativet

Markera alla i en SELECT

7 svar · 256 visningar · startad av edebro

edebroMedlem sedan aug. 2001289 inlägg
#1

Jag vill kunna markera alla val i en SELECT-ruta med multipla val (multiple).

Något sånt här borde fungera enligt mig, men uppenbarligen inte;

<html>
<body>

<script language="javascript">
function selectAll() {
	var options = document.mikael.selectMany.options.length;
	for (i=0;i<=options;i++) {
		document.mikael.selectMany.options[i].selected;
	}

}
</script>

<form name="mikael">

<select name="selectMany" size="6" multiple>
	<option value="ksks">Val ett</option>
	<option value="ksks2">Val två</option>
	<option value="ksks3">Val tre</option>
	<option value="ksks4">Val fyra</option>
	<option value="ksks5">Val fem</option>
</select><br>
<button onClick="selectAll()">Select all</button>

</form>

</body>
</html>

Om någon kan knäcka denna nöt är jag väldigt tacksam.

Mvh

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Du fick nästan till det :bire

function selectAll() {
	var options = document.mikael.selectMany.options.length;
	for (i=0;i<options;i++) {
		document.mikael.selectMany.options[i].selected = [b]true[/b];
	}
}

Notera att for-loopen endast skall köras så länge "i" är mindre än "options", samt att du måste sätta "document.mikael.selectMany.options*.selected" till "true".

:)*

edebroMedlem sedan aug. 2001289 inlägg
#3

ahhh, givetvis måste man även sätta den till true *dunkar skallen i skrivaren*

Tack som faan för upplysningen :beer

edebroMedlem sedan aug. 2001289 inlägg
#4

Bifogar mitt färdiga script om någon skulle behöva det i framtiden;

<html>
<body>

<script language="javascript">
var allSelected = false;

function selectAll() {
	var options = document.mikael.selectMany.options.length;
	
	if (allSelected) {
		for (i=0;i<options;i++) {
			document.mikael.selectMany.options[i].selected = false;
		}
		
		allSelected = false;
		document.mikael.button1.value = "Select all";
	} else {
		for (i=0;i<options;i++) {
			document.mikael.selectMany.options[i].selected = true;
		}
		
		allSelected = true;
		document.mikael.button1.value = "Deselect all";
	}

}
</script>

<form name="mikael">

<select name="selectMany" size="6" multiple>
	<option value="ksks">Val ett</option>
	<option value="ksks2">Val två</option>
	<option value="ksks3">Val tre</option>
	<option value="ksks4">Val fyra</option>
	<option value="ksks5">Val fem</option>
</select><br>
<button name="button1" onClick="selectAll()">Select all</button>

</form>

</body>
</html>

Denna kan även avmarkera alla och ändrar texten på knappen.

solbulleMedlem sedan mars 20014 998 inlägg
#5

Liten bugg är att om man markerar ett val o trycker på knappen så stämmer inte texten på den.

edebroMedlem sedan aug. 2001289 inlägg
#6

Hoppsan, här jag får ta och redigera inlägget en aning ;D

nkrantzMedlem sedan apr. 2002755 inlägg
#7

hur skulle man göra detta script om selectboxen heter area_id[]? Någon som vet?

// Nippe

JojoxxMedlem sedan juni 20004 306 inlägg
#8

Byt ut selectMany mot elements['area_id[]']

Genererad på 366 ms · cache AV · v20260730165559-full.f96bc7eb