Hur gör man för att man måste ha valt ett alternativ i en dropdown meny innan man kan fylla i t.ex. ett text fält?
Alltså om man inte valt något i dropdown menyn så ska ett varnings mess komma upp.
12 svar · 344 visningar · startad av Bosse168
Hur gör man för att man måste ha valt ett alternativ i en dropdown meny innan man kan fylla i t.ex. ett text fält?
Alltså om man inte valt något i dropdown menyn så ska ett varnings mess komma upp.
Ingen som vet hur man gör :(
<form>
<select name="s">
<option>---</option>
<option>Alt. 1</option>
</select>
<input type="text" onkeyup="if(this.form.elements['s'].selectedIndex==0){this.value='';alert('Fy!');}">
</form>
:)
hahaha jag var lite snabbare :)
Jag får det här fel messet av den koden i Dreamweaver:
Felaktig kod
<input
Felaktig kodat eftersom den innehåller ett duplicerat attribut.
Ta bort det duplicerade attributet med kodkontrollen.
Jag glömde ett citationstecken i slutet av inputelementet:
<form>
<select name="s">
<option>---</option>
<option>Alt. 1</option>
</select>
<input type="text" onkeyup="if(this.form.elements['s'].selectedIndex==0){this.value='';alert('Fy!');}">
</form>
:)
Funkar inte ändå.
Inget fel mess men det kommer inte upp någon alert box när man klickar på text fältet.
Skriptet aktiveras inte förrän det skrivs i fältet.
Här är en annan version om du vill att textfältet skall vara inaktiverat till dess att ett värde valts:
<form>
<select name="s" onchange="this.form.elements['i'].disabled = !this.selectedIndex > 0">
<option>---</option>
<option>Bar</option>
</select>
<input type="text" name="i" disabled="disabled">
</form>
:)
Det bör se ut så här istället, PeterS, eftersom ! går före > ( http://devedge.netscape.com/library/manuals/2000/javascript/1.4/guide/expr.html#1008750 ):
onchange="this.form.elements['i'].disabled = !(this.selectedIndex > 0)"
Eller så gör man det lite enklare:
onchange="this.form.elements['i'].disabled = !this.selectedIndex"
Det bör se ut så här istället
Nja, varför det? Dock kan jag hålla med om att ditt andra exempel är tjusigare.
:)
Sorry, det var jag som antog att du hade tänkt "!(this.selectedIndex > 0)" men glömt parenteserna.
När jag tänker efter blir ju svaret alltid samma, eftersom this.selectedIndex inte kan vara mindre än 0, även om operationerna (negering och jämförelse) utförs i omvänd ordning.
Skulle man kunna få ihop det scriptet med detta:
<select name="catID" onchange="location.href=this.options[this.selectedIndex].value">
Eran kod
onchange="this.form.elements['i'].disabled = !this.selectedIndex > 0"
HEJ!
Man kan sätta flera funktionsanrop efter varandra med ; emellan.
<select name="catID" onchange="location.href=this.options[this.selectedIndex].value"; onchange="this.form.elements['i'].disabled = !this.selectedIndex > 0">
Om du kan sätta ihop allt till en gemensam funktion vågar jag inte svara på, eftersom jag inte har hela funktionen klar för mig.
Vill du fylla i txt-rutan, men samtidigt skicka mig till en annan sida???