Just nu i M3-nätverket
Jump to content

Hur gör man för att trigga ett formulärelements status från ett annat element?


husan

Recommended Posts

Kan någon hjälpa mig med hur jag ska gå tillväga i följande fall:

 

Jag har ett formulär som inleds med två radioknappar. Om användaren väljer en av knapparna ska en efterföljande lista (som från början var inaktiverad) aktiveras så att det blir möjligt att göra val ur listan.

 

Alltså, kan jag aktivera en inaktiverad lista? Jag antar att jag någonstans måste sätta upp ett villkor för radioknappen...men hur?

 

Använder en jsp + javaböna för att samla in de val som gjorts i formuläret.

 

Tack på förhand!

 

Link to comment
Share on other sites

Anropa följande funktion:

<script type="text/javascript">
function cykelslang(blnVarde) {
document.getElementById("x").disabled=blnVarde;
}
</script>

Med följande radioknappar:

<input type="radio" name="o" onclick="cykelslang(true)">
<input type="radio" name="o" onclick="cykelslang(false)">

Din select-lista:

<select id="x" name="x" disabled="disabled">

 

Link to comment
Share on other sites

Nu är jag tillbaka igen med en ytterligare fråga. Har precis testat att lägga in kodexemplet du gav, men det verkar inte fungera eftersom listan som skulle aktiveras inte blir aktiverad... förvirrande.

 

Javascriptet förstår jag, det enda jag inte riktigt är med på är kodsnutten: disabled = "disabled"

i select-taggen. Jag inblillar mig att "disabled" borde bytas ut mot något funktionsanrop, men som sagt, jag har ingen vidare koll...

 

[inlägget ändrat 2007-01-19 09:14:55 av husan]

Link to comment
Share on other sites

Jag inblillar mig att "disabled" borde bytas ut mot något funktionsanrop,

Nä, disabled="disabled" är ett element-attribut och ingen css-stil (eller tja, det är ett attribut som implicit sätter en css-stil antar jag att man kan uttrycka det) och det har enbart ett möjligt värde i xhtml och det är just "disabled"

 

Scriptet i övrigt är det inget fel med, fungerar utmärkt. Förmodligen har du klippt och klistrat fel. Kontrollera att det verkligen klippts in exakt som det ser ut.

 

Link to comment
Share on other sites

Koden jag lagt in hittar jag inga som helst fel med.

 

Måste dock erkänna att jag inte förstår innebörden i disabled = "disabled". Jag förstår dock mycket väl att det inte kopplat till css....

 

Om du har tid och lust får du gärna förklara på vilket sätt onClick="cykelslang(true)" i taggen för radioknappen påverkar statusen på disabled i select-taggen.

 

Ändras "disabled" då anropet document.getElementById("x").disabled="..." körs?

 

[inlägget ändrat 2007-01-19 11:05:40 av husan]

[inlägget ändrat 2007-01-19 11:06:24 av husan]

Link to comment
Share on other sites

disabled = "disabled"
Det gör att listen inte är aktiv då man kommer in på sidan.

Den blir inte aktiv förrän man anropar funktionen cykelslang() med parametern false.

Då ändrar man värdet för elementet till att vara false, vilket innebär att det inte ska vara inaktivt längre.

Beroende vilket värde du skcikar med in i funktionsanropet, true elelr false, så ändrar du elementets värde.

"Bättre att fråga och verka dum,

än att tiga och förbli dum"

 

Link to comment
Share on other sites

Hehe, jag har nog samlat på mig en och annan poäng på "verka-dum-kontot" ;-).

 

Det fungerar fortfarande inte dock, men jag ska testa att skriva om det igen helt och hållet. Det beror väl säkert på nåt skrivfel i så fall och jag tycks ha blivit ordblind...

 

 

Edit: Jepp, så var det. Nu fungerar det. Tack!

 

[inlägget ändrat 2007-01-19 11:28:16 av husan]

Link to comment
Share on other sites

Om du har tid och lust får du gärna förklara på vilket sätt onClick="cykelslang(true)" i taggen för radioknappen påverkar statusen på disabled i select-taggen.

Ändras "disabled" då anropet document.getElementById("x").disabled="..." körs?

 

Det funktionen gör är att först hämta en referens till SELECT-elementet och därefter sätta stilen disabled till relevant värde.

 

I förra inlägget blandade jag i stressen ihop disabled och display. Disabled är ingen css-stil på något sätt. Men att sätta attributet disabled="disabled" är samma sak som att i javascript/dom använda element.disabled=false.

 

Jag vet inte om jag förklarar så bra nu. Du får ställa följdfrågor där jag är otydlig eller virrig =)

 

 

EDIT: Jaha, Micke hade redan svarat.

[inlägget ändrat 2007-01-19 11:40:58 av Anjuna Moon]

Link to comment
Share on other sites

Kör vidare i tråden med flera frågor på samma tema:

 

1) Kan jag "vända på" det föregående scriptet så att jag istället för att aktivera ett deaktiverat element kan inaktivera ett aktiverat sådant? Skulle det exempelvis vara möjligt att använda sig av document.getElementById("x").enabled="y" istället?

 

2) Kan jag använda samma typ av metod också på checkboxar?

 

3) Går det på något sätt att genomföra samma funktion mha en lista(select), dvs att man väljer ett option och valet triggar så att en tidigare inaktiv komponent aktiveras?

 

?!?

 

Link to comment
Share on other sites

1) Nä, det är fortfarande attributet disabled som skall ändras, det är bara värdet du ger det som skall inverteras. cykelslang(true) skall alltså ändras till cykelslang(false) och omvänt. Dessutom plockar du bort disabled="disabled" i taggen om det skall vara synligt från start.

 

2) Ja, det går bra. Alla element som har attributet disabled kan du göra detta med.

 

3) Ja. Följande gör samma sak om option med värde 3 väljs

<select onchange="if (this.options[this.selectedIndex].value=='3') cykelslang(true);">

 

[inlägget ändrat 2007-01-19 15:16:09 av Anjuna Moon]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...