webForumDet fria alternativet

Validera select!

JavaScriptur Javascript

6 svar · 316 visningar · startad av oskars

Medlem sedan nov. 20051 317 inlägg
Frågan#1

Jag har sökt på wF, jag har sökt på Google... Jag har stretat och krånglat... jag är inte så bra på javascript så jag hittar aldrig felet x(

Jag vill validera min select som ser ut så här:

<form name="sign" onSubmit="return checkSignatur(this.form);">
	<select name="signatur">
		<option value="0">Signera</option>
		<optgroup label="Signaturer">
			<option value="sign01">Signatur</option>
		</optgroup>
	</select>
	<br />
	<input name="submit" type="submit" value="Retur OK">
</form>

Och det är med denna koden som jag försöker validera med, men det går inte :bla

function checkSignatur(s) {
	
	var sel = document.forms["sign"].elements["signatur"];

	if (sel.options[sel.selectedIndex].value == "0") {
                          alert("Du måste signera!");
		return false;
	}
}

Jag antar att problemet är lättlöst, men jag kan inte se det :birp

tacksam för hjälp!

oskar

Medlem sedan juni 200032 967 inlägg
#2

Det kan ju vara vettigt att låta funktionen returnera true någon gång...

Får du något javascriptfel?
Varför skickar du in formuläret i funktionen om du inte använder s i funktionen?

mvh

Medlem sedan juni 20031 837 inlägg
#3

du returnerar aldrig värdet true i din valideringsfunktion

function checkSignatur(s) {
	
	var sel = document.forms["sign"].elements["signatur"];

	if (sel.options[sel.selectedIndex].value == "0") {
                          alert("Du måste signera!");
		return false;
	}
	return true;
}

om det bara är det vet jag inte men du kan börja med att testa det.

/r ähh, var inte tillräckligt snabb där :(

Medlem sedan nov. 20051 317 inlägg
#4

men mitt problem är att alert-fönstret inte kommer upp när någon valt att inte signera... :/

Försökte så här som du sa, men det blev ingen skillnad:

function checkSignatur(s) {
	
	var sel = document.forms["sign"].elements["signatur"];

	if (sel.options[sel.selectedIndex].value == "") {
		return false;
	} else {
		return true;	
	}
}
Medlem sedan juni 200032 967 inlägg
#5

Hmm...

Varför har du ändrat till value == "" i jämförelsen? Har du ändrat i din option då också? Kan du inte gå direkt på selectedIndex, utan att bry dig om värdet?

  1. Sätt id på din <select>.
	var sel = document.getElementById("signatur");

	if (sel.selectedIndex == 0) {
		return false;
	} else {
		return true;	
	}
Medlem sedan nov. 20051 317 inlägg
#6

Just det, gjorde lite ändringar under tiden, hoppas jag inte förvirrade för mkt!

Underbart @nders, tack så mkt! Det fungerar perfekt :) Tack tack alla som ville hjälpa!

Medlem sedan juni 200032 967 inlägg
#7

Vasse, och lycka till med resten. :bire

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)