webForumDet fria alternativet

Rullisten måste vara vald

12 svar · 344 visningar · startad av Bosse168

Bosse168Medlem sedan nov. 20031 018 inlägg
#1

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.

Bosse168Medlem sedan nov. 20031 018 inlägg
#2

Ingen som vet hur man gör :(

Peter SMedlem sedan dec. 20025 483 inlägg
#3
<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>

:)

Bosse168Medlem sedan nov. 20031 018 inlägg
#4

hahaha jag var lite snabbare :)

Bosse168Medlem sedan nov. 20031 018 inlägg
#5

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.

Peter SMedlem sedan dec. 20025 483 inlägg
#6

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>

:)

Bosse168Medlem sedan nov. 20031 018 inlägg
#7

Funkar inte ändå.
Inget fel mess men det kommer inte upp någon alert box när man klickar på text fältet.

Peter SMedlem sedan dec. 20025 483 inlägg
#8

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>

:)

dectgapMedlem sedan sep. 20021 655 inlägg
#9

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"
Peter SMedlem sedan dec. 20025 483 inlägg
#10

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.

:)

dectgapMedlem sedan sep. 20021 655 inlägg
#11

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.

Bosse168Medlem sedan nov. 20031 018 inlägg
#12

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"
J.N.Medlem sedan apr. 20031 660 inlägg
#13

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???

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