WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Hur bocka checkboxar med hjälp av dropdown? (https://www.wn.se/forum/showthread.php?t=31559)

nCo 2008-09-01 13:42

Hej!

Skulle behöva tips på hur jag enklast bockar i ett par checkboxar beroende på ett val som görs
i en input select, helst genom en enkel onChange.

Jag har alltså ett antal val i en databas t.ex

MODELL, FUNKTION1, FUNKTION2, FUNKTION3
A100, 1, 0, 0
A101, 1, 1, 0

Selecten visar tillgängliga modeller. Sen har jag checkboxar som representerar de olika funktionerna 1-3. Jag vill helt enkelt att beroende på modell man väljer i listan så skall checkboxarna markeras enligt databasen. Det är klassisk ASP i botten som kallar på
javan. Egentligen är väl svårigheten att populera javan men datat från databasen via ASP?

Tacksam för idéer för jag suger på java!

Min kod än så länge:
Kod:

<script type="text/javascript">
function check(){
if (document.myform.values.selectedIndex == 1) {
document.myform.FUNKTION1.checked = true;
document.myform.FUNKTION2.checked = false;
document.myform.FUNKTION3.checked = false;
} else if (document.myform.values.selectedIndex == 2) {
document.myform.FUNKTION1.checked = true;
document.myform.FUNKTION2.checked = true;
document.myform.FUNKTION3.checked = false;
} else if (document.myform.values.selectedIndex == 3) {
document.myform.FUNKTION1.checked = true;
document.myform.FUNKTION2.checked = true;
document.myform.FUNKTION3.checked = true;
}
}
</script>

<html>
<head>
</head>
<body>
<form name=myform>
<select onChange="javascript:check();" name="values">
<option>Välj modell...</option>
<option value="#">MODELL1</option>
<option value="#">MODELL2</option>
<option value="#">MODELL3</option>
 </select>
 <p>
 FUNKTION1<input type="checkbox" name="FUNKTION1" value="">*
 FUNKTION2<input type="checkbox" name="FUNKTION2" value="">*
 FUNKTION3<input type="checkbox" name="FUNKTION3" value="">
 </p>
</form>
</body>
</html>


najk 2008-09-01 14:04

typ
Kod:

if (this.value == 'värde1') {
document.getElementById('checkbox1').checked=true;
}


nCo 2008-09-01 19:02

Svarar på mig själv med lösningen, kanske är intressant för någon. Valde att populera selecten med en komma-separerad sträng som value. Enklare än så kunde det nästan inte bli. Sen splitta i javan och loopa.

Kod:

<script type="text/javascript">
function check(){
var arrayFunc = document.getElementById("modell").value.split(",");
for (i = 0; i < arrayFunc.length; i++)
{
if (arrayFunc[i] == 1) {
document.getElementById("FUNKTION"+i).checked = true;
} else {
document.getElementById("FUNKTION"+i).checked = false;
 }
 }
}
</script>

<html>
<head>
</head>
<body>
<form name=myform>
<select onChange="javascript:check();" name="modell" id="modell">
<option>Välj modell...</option>
<option value="1,0,0">MODELL1</option>
<option value="1,1,0">MODELL2</option>
<option value="1,1,1">MODELL3</option>
 </select>
 <p>
 FUNKTION1<input type="checkbox" id="FUNKTION0" value="">
 FUNKTION2<input type="checkbox" id="FUNKTION1" value="">
 FUNKTION3<input type="checkbox" id="FUNKTION2" value="">
 </p>
</form>
</body>
</html>


Alex 2008-09-01 19:39

Inte för att vara den som är den, men du bör lära dig att skilja på Javascript och Java. Två helt olika saker.

Lindahl 2008-09-01 19:55

Sen kan det vara trevligt att rensa bort några onödiga rader kod, om man är lagd åt det hållet...
Kod:

<script type="text/javascript">
function check(){
  var arrayFunc = document.getElementById("modell").value.split(",");
  for (i=0; i<arrayFunc.length; i++)
    document.getElementById("FUNKTION"+i).checked = (arrayFunc[i] == 1);
}
</script>


nCo 2008-09-02 00:53

Tack, det blev renare. Trodde alla dessa fnuttar var tvugna att vara med...


Alla tider är GMT +2. Klockan är nu 08:48.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson