Avatar billede stefmeister Nybegynder
30. november 2005 - 17:52 Der er 18 kommentarer og
1 løsning

Hidden funktion aktiveres

Hej

Jeg står og er ved at lave en formular, hvor en bruger indtaster sine oplysninger, og hvad han vil købe - så har jeg brug for, at han kan sætte flueben ved en boks med ekstra funktioner, og så skal en knap aktiveres. Altså så knappen er "grå", når man så sætter hak bliver den sort, og hvis man fjerner hakket igen, bliver den deaktiveret. Jeg har meget lidt forstand på javascript, så ville blive glad for noget hjælp :D
Avatar billede psykochicken Nybegynder
01. december 2005 - 00:01 #1
er det noget i stil med dette du mener:
<script type="text/javascript">
function tjek(elm){
  var knap = document.getElementById('minknap');
  if(!elm.checked){
    knap.disabled=true;
    knap.style.backgroundColor="";
  }
  else {
    knap.disabled = false;
    knap.style.backgroundColor = "#000";
  }
}
</script>
</head>
<body>
<input type="button" id="minknap" value="Tryk" disabled>
<input type="checkbox" onclick="tjek(this);">

/psc
Avatar billede roenving Novice
01. december 2005 - 12:16 #2
-- og da man fra form-elementer har direkte adgang til formen og dermed form-elementer kan man nøjes med:

<form action=" ... " method="post" onsubmit=" ... ">

-- andre felter

<br>
<input type="checkbox" name="acceptOK" onclick="this.form.bestil.disabled=!this.checked">&nbsp;Jeg forstår og accepterer handelsbetingelserne<br>
<input type="submit" name="bestil" value="Send bestilling" disabled>

</form>
Avatar billede stefmeister Nybegynder
01. december 2005 - 12:16 #3
præcis... drop et svar :D
Avatar billede stefmeister Nybegynder
01. december 2005 - 12:18 #4
begge svar virker rigtig godt..
Avatar billede stefmeister Nybegynder
01. december 2005 - 12:20 #5
roenving -> hvis nu at der var mange felter der skulle aktiveres når man klikker? I psykochicken kan man jo selv tilføje flere - men hvordan kan man gøre det med dit eksempel?
Avatar billede roenving Novice
01. december 2005 - 13:20 #6
Så ville jeg også lave en funktion, der kunne det, men da jeg forventer, at det er noget i stil med mit eksempel, er der ingen grund til at gå over åen efter vand !-)
Avatar billede stefmeister Nybegynder
01. december 2005 - 14:04 #7
Det er fordi jeg har en upload knap, en tekstboks og nogle andre småting der skal aktiveres når man trykker "Køb ekstra funktioner".
Avatar billede roenving Novice
01. december 2005 - 14:20 #8
Jeg ville nok gøre sådan:

<script type="text/javascript">
function tjek(elm){
  elm.form.bestil.disabled = !elm.checked;
  elm.form.ekstraText.disabled = !elm.checked;
  elm.form.elements["ekstraRadio"][0].disabled = !elm.checked;
  elm.form.elements["ekstraRadio"][1].disabled = !elm.checked;
}
</script>
Avatar billede stefmeister Nybegynder
01. december 2005 - 14:25 #9
roenving -> den er jeg ikke helt med på? Hvordan sætter man det sammen?

psykochicken -> dit svar virker som det skal, det kan jeg selv rette i etc.
Avatar billede psykochicken Nybegynder
01. december 2005 - 18:59 #10
Det roenving formodentligt mener er at det gælder om at være så doven som muligt ;o)

Evt:
<script type="text/javascript">
function tjek(elm){
  elm.form.ekstraliste.disabled = !elm.checked;
  elm.form.elements["ekstraRadio"][0].disabled = !elm.checked;
  elm.form.elements["ekstraRadio"][1].disabled = !elm.checked;
  elm.form.elements["ekstraRadio"][2].disabled = !elm.checked;
  elm.form.bestil.disabled = !elm.checked;
  if(!elm.form.bestil.disabled){ elm.form.bestil.style.backgroundColor="black"; }
  else{ elm.form.bestil.style.backgroundColor=""; }
}
</script>
</head>
<body>
<form action="" method="post" onsubmit="">
<!-- dine øvrige felter -->
<input type="checkbox" name="acceptOK" onclick="tjek(this);">Køb ekstra funktioner<br><br>
<select size="1" name="ekstraliste" disabled>
<option>ekstra funktion 1</option>
<option>ekstra funktion 2</option>
<option>ekstra funktion 3</option>
</select><br><br>
<input type="radio" name="ekstraRadio" size="20" disabled> Jeg ønsker månedlig tilbudsavis.<br>
<input type="radio" name="ekstraRadio" size="20" disabled> Jeg ønsker kun medlemstilbud.<br>
<input type="radio" name="ekstraRadio" size="20" disabled> Jeg ønsker ingen tilbud.<br><br>
<input type="submit" name="bestil" value="Bekræft" style="color:white;" disabled>
</form>
</body>

/psc
Avatar billede stefmeister Nybegynder
01. december 2005 - 21:26 #11
m'kay... jeg synes den første er den nemmeste for mit vedkommende, det andet ligner lidt volapyk for mig :| det første minder mere om Delphi eller lign. så hvis du ligger et svar? :D
Avatar billede psykochicken Nybegynder
01. december 2005 - 22:28 #12
oki - svar kommer her ;o)
Avatar billede psykochicken Nybegynder
02. december 2005 - 18:36 #13
..og tak for point ;o)
Avatar billede stefmeister Nybegynder
02. december 2005 - 19:08 #14
en ting jeg ik helt forstår, hvis jeg opretter et nyt dokument og sætter formlen ind, så virker det hele fint etc. men hvis jeg smider det ind i et eksisterende dokument, så virker det ikke. hvordan kan det være? hvor skal selve scriptet stå i forhold til inputtet?
Avatar billede psykochicken Nybegynder
02. december 2005 - 20:22 #15
Når det er muligt, placerer jeg helst scripts i <head>-sektionen for overskuelighedens skyld.
Hvis du ikke kan få det til at virke, så smid koden eller link til dit "eksisterende dokument".

/psc
Avatar billede stefmeister Nybegynder
02. december 2005 - 21:06 #16
hvordan linker jeg til mit eksisterende dokument?


Dette er min kode... hele siden er ret lang, så poster kun der hvor jeg har knappen og omkringliggende:


//------------------------------- KØB PIXELS START --------------------------------//
if($_GET['site'] == "buy") {
?>

<script type="text/javascript">
function tjek(elm){
  var knap = document.getElementById('minknap');
  if(!elm.checked){
    knap.disabled=true;
    knap.style.backgroundColor="";
  }
  else {
    knap.disabled = false;
    knap.style.backgroundColor = "#000";
  }
}
</script>

<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="1000" id="Menubar">
  <tr>
    <td width="170" bgcolor="#CECDCD"></td>
    <td class="site" align="left" width="660" bgcolor="#E0DDDD">

    <div class="buyform">
    <form id="search" action="admin.php" enctype="multipart/form-data" method="POST">


<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="660" id="Buyform">

  <tr>
    <td width="155">Fulde Navn:</td>
    <td><input class="input1" type="Text" value="" name="navn" size="30"></td>
  </tr>

  <tr>
    <td width="155">Evt. Firmanavn:</td>
    <td><input class="input1" type="Text" value="" name="firmanavn" size="30"></td>
  </tr>

  <tr>
    <td width="155">Adresse:</td>
    <td><input class="input1" type="Text" value="" name="adresse" size="30"></td>
  </tr>

  <tr>
    <td width="155">Postnummer:</td>
    <td><input class="input1" type="Text" value="" name="postnummer" size="2" maxlength="4"></td>
  </tr>

  <tr>
    <td width="155">Telefonnummer:</td>
    <td><input class="input1" type="Text" value="" name="telefon" size="30"></td>
  </tr>

  <tr>
    <td width="155">Email:</td>
    <td><input class="input1" type="Text" value="" name="email" size="30"></td>
  </tr>

  <tr>
    <td width="155">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155">Antal blokke (10x10):</td>
    <td><input class="input1" type="Text" value="" name="antal" size="15"></td>
  </tr>

  <tr>
    <td width="155">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155">Placering</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155">Vandret:</td>
    <td><input class="input1" type="Text" value="" name="vandret" size="15"></td>
  </tr>

  <tr>
    <td width="155">Lodret:</td>
    <td><input class="input1" type="Text" value="" name="lodret" size="15"></td>
  </tr>

  <tr>
    <td width="155">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155">Vælg bilede:</td>
    <td><input class="input1" type="file" value="" name="billede" size="30"></td>
  </tr>

  <tr>
    <td width="155">Billede kommentar:</td>
    <td><input class="input1" type="Text" value="" name="kommentar" size="30" maxlength="80"> Maks 80 tegn.</td>
  </tr>

  <tr>
    <td width="155">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155">Jeg ønsker køb af ekstra funktion</td>
    <td><input type="checkbox" onclick="tjek(this);"></td>
  </tr>

  <tr>
    <td width="155">Vælg billede:</td>
    <td><input type="button" id="minknap" value="Tryk" disabled></td>
  </tr>

  <tr>
    <td width="155">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td width="155"><input class="input1" type="reset" name="tjek" value="Reset Form"></td>
    <td><input class="input1" type="submit" value="Køb"></td>
  </tr>


    </td>
  </tr>
</table>

    </form>
    </div>


    </td>
    <td width="170" bgcolor="#CECDCD"></td>
  </tr>
</table>
</div>


<?
} //---------------------------------- KØB PIXELS SLUT ------------------------------//




Jeg har bare kopieret direkte, selve scriptet, knappen og checkboksen.
Avatar billede psykochicken Nybegynder
04. december 2005 - 01:03 #17
du har et lille uheldigt navnesammenfald:
<input class="input1" type="reset" name="tjek" value="Reset Form">
Du kan enten rette name="tjek" eller omdøbe funktionsnavnet tjek().

/psc
Avatar billede stefmeister Nybegynder
04. december 2005 - 18:07 #18
aaaah.. tusind tak. :D
Avatar billede psykochicken Nybegynder
04. december 2005 - 19:11 #19
...de nada ;o)
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