webForumDet fria alternativet

Lås upp textruta?

5 svar · 571 visningar · startad av streetrobban

streetrobbanMedlem sedan jan. 20011 140 inlägg
#1

Hej!

Jag vill göra en dropdown där man låser upp en textruta bredvid (den syns, men är inte klickbar) när man väljer ett visst menyval i dropdown-listan.

Går detta att göra?

EDIT 1
Jag hittade lite kod som nästan funkar. Följande kod låser textrutan när sidan laddas. Väljer man något annat än det första valet i dropdown-listan så öppnas textrutan. Väljer man det översta igen så låser man rutan. Hur ska jag göra för att ENBART låsa upp rutan med det andra menyvalen, och låsa rutan igen oavsett vilket annat val man gör?

<script type="text/javascript">
window.onload = function()
{
	setCbState(document.forms["TheForm"].elements["Store"]);
}
function setCbState(obj)
{
	obj.form.elements["NewStore"].disabled = !(obj.selectedIndex > 0);
}
</script>

			<select name="Store" class="input" style="width: 256px; height: 24px" onChange="setCbState(this)">
			<option>Välj affär</option>
			<option>Ny affär</option>
			<option></option>
.. massa options ...
<input type="text" name="NewStore" class="input" style="width: 250px; height: 18px">

EDIT 2
Jag hittade lösningen. Jag ändrade (obj.selectedIndex > 0) till (obj.selectedIndex == 1) och <option>Ny affär</option> till <option id="1">Ny affär</option>. :)

En ny fråga då, vet någon hur man rensar textrutan om den är "disabled". D.v.s. om man väljer "Ny affär" och skriver något i rutan. Men sedan ångrar sig och väljer något annat val, så textrutan blir "disabled" igen. Då vill jag att den ska rensas.

streetrobbanMedlem sedan jan. 20011 140 inlägg
#2

Jag lyfter fram min andra fråga i den här tråden.

En ny fråga då, vet någon hur man rensar textrutan om den är "disabled". D.v.s. om man väljer "Ny affär" och skriver något i rutan. Men sedan ångrar sig och väljer något annat val, så textrutan blir "disabled" igen. Då vill jag att den ska rensas.

Peter SMedlem sedan dec. 20025 483 inlägg
#3
function setCbState(obj)
{
	obj.form.elements["NewStore"].disabled = (obj.selectedIndex == 1);
	if (obj.form.elements["NewStore"].disabled)
		obj.form.elements["NewStore"].value = "";
}
streetrobbanMedlem sedan jan. 20011 140 inlägg
#4

Tack för svaret! Själva funktionen funkar, så den raderar tecknen i textrutan. Men det är ändå inte rätt.

Funktionen är liksom inverterad. När jag väljer en affär från listan så öppnas textrutan, och när jag väljer "ny affär" så stängs textrutan. Det ska liksom vara tvärt om :)

jawbreakerMedlem sedan jan. 2003296 inlägg
#5

Det är bara en liten, liten miss i första raden i funktionen... Rutan ska låsas om man inte valt första värdet i listan, nu låses den om man har valt det första. Så det borde bara vara att ändra == till != i jämförelsen i första raden.

streetrobbanMedlem sedan jan. 20011 140 inlägg
#6

jawbreaker skrev:

Det är bara en liten, liten miss i första raden i funktionen... Rutan ska låsas om man inte valt första värdet i listan, nu låses den om man har valt det första. Så det borde bara vara att ändra == till != i jämförelsen i första raden.

Perfekt! Det löste biffen! Tack för er hjälp alla :)

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