oskarsMedlem sedan nov. 20051 263 inlägg
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
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
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
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
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?
- 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
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
Vasse, och lycka till med resten. :bire