webForumDet fria alternativet

Validera select!

6 svar · 316 visningar · startad av oskars

oskarsMedlem sedan nov. 20051 263 inlägg
#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

@ndersMedlem sedan juni 200026 914 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

The_HulkMedlem sedan juni 20031 937 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 :(

oskarsMedlem sedan nov. 20051 263 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;	
	}
}
@ndersMedlem sedan juni 200026 914 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;	
	}
oskarsMedlem sedan nov. 20051 263 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!

@ndersMedlem sedan juni 200026 914 inlägg
#7

Vasse, och lycka till med resten. :bire

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