webForumDet fria alternativet

Gråmarkera tre "select-listor" när man klickar i radio

JavaScript

4 svar · 276 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Frågan#1
<input type="radio" name="typ" Value="0" checked> 0 <br>
<input type="radio" name="typ" Value="1"> 1<br><br>

<select name="year">
 <option selected>2002</option>
 <option>2003</option>
 ....
 <option>2006</option>
</select> -

<select name="month">
 <option>1</option>
 <option>2</option>
 ...
 <option selected>12</option>
</select> -

<select name="day">
 <option>1</option>
 <option>2</option>
 ...
 <option>31</option>
</select>

Jag har ovanstående kod i ett formulär. Jag vill att alla selectboxar ska gråmarkeras (disable) när den översta radioknappen (value=0) är markerad, och de ska vara ändringsbara när den undre är markerad. Går det att ordna på något smidigt sätt??

Medlem sedan juli 20011 084 inlägg
#2
function disabla(obj,value){
  for(i=0;i<document.[i]formnamn[/i][obj].length;i++){
    document.[i]formnamn[/i][obj][_i_].disabled=value;
  }
}

och:
<input type="radio" name="typ" Value="0" checked onClick="disabla(selectlistans namn,'disabled');> 0 <br>
<input type="radio" name="typ" Value="1" onClick="disabla(selectlistans namn,'');> 1<br>

det är i alla fall en grund...

PS ta bort _.

Medlem sedan mars 20025 907 inlägg
#3

Fel: 'document.data[...].length' är null eller inte ett objekt.
Såhär ser mitt formulär ut nu (nerkortad variant):

<SCRIPT language=javascript>
<!--
function disabla(obj,value){
  for(i=0;i<document.data[obj].length;i++){
    document.data[obj][_i_].disabled=value;
  }
}
//-->
</SCRIPT>

<FORM name="data" onsubmit="return validate(this)" action="Default.asp?do=23r&func=artikel&step=2" method="post">
<b>Typ av artikel:</b><br>
<input type="radio" name="typ" Value="0" checked onClick="disabla(year,'disabled');"> 0<br>
<input type="radio" name="typ" Value="1" onClick="disabla(year,'');"> <br><br>

<select name="year">
 <option>2002</option>
  ...
 <option>2006</option>
</select> -

<select name="month">
 <option>1</option>
 ... 
 <option>12</option>
</select> -
<select name="day">
 <option>1</option>
 ...
 <option>31</option>
</select>

<INPUT type="submit" value="Spara" name="submit">

Ser någon något fel? Nästa fråga bli hur man gör för att disablea ALLA selectlistor. Någon?

Medlem sedan juli 20011 084 inlägg
#4

du måste ha ' ' runt year också

Medlem sedan mars 20025 907 inlägg
#5

japp.. Upptäckte det efter att ha läst en annan tråd här alldeles nyss. Provade lite och kom fram till en kod som fungerar:

<SCRIPT language=javascript>
<!--
function disabla(obj,value){
  for(i=0;i<document.data[obj].length;i++){
    document.data[obj][_i_].disabled=value;
  }
}
//-->
</SCRIPT>

<FORM name="data" onsubmit="return validate(this)" action="Default.asp?do=23r&func=artikel&step=2" method="post">
<b>Typ av artikel:</b><br>
<input type="radio" name="typ" Value="0" checked onClick="disabla('year','disabled'); disabla('month','disabled');  disabla('day','disabled');"> 0<br>
<input type="radio" name="typ" Value="1" onClick="disabla('year',''); disabla('month','');  disabla('day','');"> <br><br>

<select name="year" disabled>
 <option>2002</option>
  ...
 <option>2006</option>
</select> -

<select name="month" disabled>
 <option>1</option>
 ... 
 <option>12</option>
</select> -
<select name="day" disabled>
 <option>1</option>
 ...
 <option>31</option>
</select>

<INPUT type="submit" value="Spara" name="submit">

Tackar för hjälpen!!

348 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
216 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)