Avatar billede mbiegel Nybegynder
29. november 2010 - 19:54 Der er 8 kommentarer og
1 løsning

Disable med checkbox.

Hej jeg har fundet det her script. Men har 2 problemer.

Det er en formular jeg har hvor man eks. skal taste biler ind måske 100. Så skal der være en checkboks hvor man vælger bilen. Under kommer der 3 felter frem pris, farve og motorstørrelse. De bliver aktiveret. Men det script jeg har køre på hvad feltet hedder og hvis der eks. kommer 100 vil det blive et stort script. Så kan man lave så hver felter får et id. Når checkboksen er selected skal de automatisk være fremme og ikke være disable ved sideindlæsning. Dvs. kan man gør sådan man ffjerne disable fra feltet. Jeg skal bruge name til at hente værdien så den vil altid hedde eks. farve10 (farve[id]).

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
<!--
function disableText()
{
if(document.form1.checkbox.checked){
document.form1.pris1.disabled=false;
document.form1.motor1.disabled=false;
}else{
document.form1.pris1.disabled=true;
document.form1.farve1.disabled=true;
document.form1.motor1.disabled=true;
}
}
-->
</script>
</head>
<body>
<form name="form1">
<p>
<input type="checkbox" name="checkbox" value="checkbox" onclick="disableText();">
</p>
<p>
<input type="input" name="pris1" disable>
<SELECT NAME="farve1" disabled>
<OPTION>vælg</option>
<OPTION VALUE="gul">gul</option>
<OPTION VALUE="rød">rød</option>
<OPTION VALUE="blå">blå</option>
</SELECT>&nbsp;
<SELECT NAME="motor1" disabled>'
<OPTION>vælg</option>
<OPTION VALUE="2.0">2.0</option>
<OPTION VALUE="1.8">1.8</option>
<OPTION VALUE="1.6">1.6</option>
</SELECT>&nbsp;

</form>
</p>
</body>
</html>

Kan det lade sig gøre?
Avatar billede majbom Novice
30. november 2010 - 01:39 #1
giv dine selects et id: 'motor_1', 'farve_1', 'motor_2', 'farve_2' osv.

ændr funktionen disableText() til:

function disableText(checkbox){
  var id = checkbox.getAttribute('id').split('_')[1];
  var selColor = document.getElementById('farve_'+id);
  var selEngine = document.getElementById('motor_'+id);

  if(checkbox.checked){
      selColor.disabled = false;
      selEngine.disabled = false;
  }else{
      selColor.disabled = true;
      selEngine.disabled = true;
  }
}


kald funktionen med:

onclick="disableText(this);

og giv dine checkboxe et id: 'check_1', 'check_2' osv...
Avatar billede mbiegel Nybegynder
30. november 2010 - 17:15 #2
Endnu en gang tak.

Det virker godt.

Smid et svar :)
Avatar billede majbom Novice
30. november 2010 - 19:52 #3
kommer her :)
Avatar billede mbiegel Nybegynder
01. december 2010 - 17:14 #4
Hov, jeg har lige et ekstra spørgsmål.

Det virker ikke på det andet script jeg lave fordi de hedder eks. farve_1_bmw - hvordan får jeg kategorinavnet med ind som id så det også virker på mit farvescript?
Avatar billede majbom Novice
01. december 2010 - 18:39 #5
har du prøvet? for det burde virke så længe at id'et kommer efter den første underscore...
Avatar billede mbiegel Nybegynder
01. december 2010 - 21:04 #6
Ja, men det jeg mener er at boksen hedder farve_1_bmw og en anden hedder farve_10_volvo - bilmærket bagerst bliver ikke regnet med i:

  var selColor = document.getElementById('farve_'+id);

Hvis du er med på hvad jeg mener. Kategorien skal vel lægges til?
Avatar billede majbom Novice
02. december 2010 - 09:26 #7
nååh..

når du kører var myArray = myString.split("_") på din streng (farve_10_volvo) vil arrayet myArray se sådan ud:

myArray[0] = "farve"
myArray[1] = "10"
myArray[2] = "volvo"
Avatar billede mbiegel Nybegynder
02. december 2010 - 19:12 #8
Hej

Jeg fandt en anden løsning og det virker nu.

Men tak for hjælpen - jeg giver point nu :)
Avatar billede majbom Novice
02. december 2010 - 20:24 #9
selv tak og tak for point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester