Avatar billede ofirpeter Nybegynder
18. november 2006 - 23:59 Der er 12 kommentarer og
2 løsninger

Hvilke checkbokse er markeret?

Hej,
Jeg har søger efter et script som "live" kan se hvilke checkbokse der er markeret. Med live mener jeg uden at skulle opdatere siden først, eller trykke på en submit knap. Er det overhoved muligt?

Eks.
Jeg har 3 checkbokse
<input type='checkbox' name='nr1' value ='nr1'>
<input type='checkbox' name='nr2 value ='nr2'>
<input type='checkbox' name='nr3' value ='nr3'>

Når jeg klikker den første checkbox, skrives der straks på siden:
"checkbox nr1 er klikket"

Er dette muligt?
Avatar billede ellebaek Nybegynder
19. november 2006 - 00:11 #1
måske noget i denne stil:

<SCRIPT>
function checked(field) {
  if (field.checked) {
      document.form.hvad.value = field.Name + " er markeret";}
  else {
      document.form.hvad.value = "";}
}
</SCRIPT

<form name="form">
<input type='checkbox' name='nr1' onClick="if (this.checked) checked(this)" value ='nr1'>
<input type='checkbox' name='nr2 onClick="if (this.checked) checked(this)" value ='nr2'>
<input type='checkbox' name='nr3' onClick="if (this.checked) checked(this)" value ='nr3'>

<input type="text" name="hvad" readonly value="">
</form>


så skulle det gerne skrives i det textfelt jeg har sat i bunden. kan eventuelt laves om, så det skrives på en div i stedet eller tilsvarende...
Avatar billede ofirpeter Nybegynder
19. november 2006 - 12:41 #2
Det virker desværre ikke helt efter hensigten :)

Følgende giver fejlen
"Object does not support this action"

<SCRIPT>
    function checked(field) {
      if (field.checked) {
          document.formnavn.hvad.value = field.Name + " er markeret";}
      else {
          document.formnavn.hvad.value = "";}
    }
</SCRIPT>

<form name="formnavn">
<input type='checkbox' name='nr1' onClick="if (this.checked) checked(this)" value ='nr1'>
<input type='checkbox' name='nr2' onClick="if (this.checked) checked(this)" value ='nr2'>
<input type='checkbox' name='nr3' onClick="if (this.checked) checked(this)" value ='nr3'>

<input type="text" name="hvad" readonly value="">
</form>
Avatar billede ellebaek Nybegynder
19. november 2006 - 16:20 #3
hehe..... tror det er fordi checked allerede findes i forvejen.

<SCRIPT>
    function testfunc(field) {
      if (field.checked) {
          document.formnavn.hvad.value = field.Name + " er markeret";}
      else {
          document.formnavn.hvad.value = "";}
    }
</SCRIPT>

<form name="formnavn">
<input type='checkbox' name='nr1' onClick="if (this.checked) testfunc(this)" value ='nr1'>
<input type='checkbox' name='nr2' onClick="if (this.checked) testfunc(this)" value ='nr2'>
<input type='checkbox' name='nr3' onClick="if (this.checked) testfunc(this)" value ='nr3'>

<input type="text" name="hvad" readonly value="">
</form>
Avatar billede roenving Novice
20. november 2006 - 01:55 #4
Lige et par uhensigtsmæssigheder og en direkte alvorlig fejl:

<script type="text/javascript">
    function testfunc(field) {
      if (field.checked) {
          document.formnavn.hvad.value = field.name + " er markeret";}
      else {
          document.formnavn.hvad.value = "";}
    }
</script>

<form name="formnavn">
<input type='checkbox' name='nr1' onclick="testfunc(this)" value ='nr1'>
<input type='checkbox' name='nr2' onclick="testfunc(this)" value ='nr2'>
<input type='checkbox' name='nr3' onclick="testfunc(this)" value ='nr3'>

<input type="text" name="hvad" readonly value="">
</form>

-- et script-tag _skal_ indeholde en type-attribut ...

-- i javascript _skal_ alle standard-attributter adresseres med små bogstaver, og da js er case-sensitivt, vil .Name bare give 'undefined' !-)

-- og hvis du i funktionen tester, er det bare dobbelt-konfekt også at teste det i onclick-eventen ...
Avatar billede ofirpeter Nybegynder
20. november 2006 - 09:11 #5
Tak for rettelser.
Er det muligt at få skrevet under hinandne evt. i en div hvilke check boxe der er markeret? Altså:
nr1 er markeret
nr3 er markeret

Og fjerne dem igen når de afmarkeres igen?
Avatar billede roenving Novice
22. november 2006 - 10:56 #6
Ja, men så har vi en helt anden opgave:

<script type="text/javascript">
    function testfunc(field) {
      var e = field.form.elements, txt="";
      for(i=0,im=e.length;im>i;i++){
        if(e[i].checked){
          txt += e[i].name + " er markeret<br>";
        }
      }
      document.getElementById("hvad").innerHTML = txt ? txt : "Ingen markeret";
    }
</script>

<form name="formnavn">
<input type='checkbox' name='nr1' onclick="testfunc(this)" value ='nr1'>
<input type='checkbox' name='nr2' onclick="testfunc(this)" value ='nr2'>
<input type='checkbox' name='nr3' onclick="testfunc(this)" value ='nr3'>

<div id="hvad">Ingen markeret</div>
</form>

-- jeg var en anelse doven, så jeg brugte bare innerHTML, selvom den ikke findes !-)
Avatar billede ofirpeter Nybegynder
22. november 2006 - 15:28 #7
Fornemt, mange tak. Svar gerne
Avatar billede roenving Novice
22. november 2006 - 23:59 #8
Tjah, ellebaek løste jo den oprindelige opgave ...
Avatar billede ofirpeter Nybegynder
25. november 2006 - 15:38 #9
Så må vi have ellebaek til at smide et svar også :)
Avatar billede ellebaek Nybegynder
25. november 2006 - 16:31 #10
Hehe :-)

okay, det er jeg ellers ikk meget for når jeg smider koder med fejl i jo??

Synes egentlig du skal have dem roenving, men smider da et svar alligevel, så bestemmer du peter.!
Avatar billede roenving Novice
27. november 2006 - 02:41 #11
-- og dovenskab kan jo kureres:

<script type="text/javascript">
    function testfunc(field) {
      var e = field.form.elements, txt=[];
      for(i=0,im=e.length;im>i;i++){
        if(e[i].checked){
          txt.push(e[i].name + " er markeret");
        }
      }
      var elm = document.getElementById("hvad");
      while(elm.childNodes.length > 1)
        elm.removeChild(elm.childNodes[1]);
      if(txt.length>1){
        elm.firstChild.nodeValue = txt[0];
        for(i=1,im=txt.length;im>i;i++){
          elm.appendChild(document.createElement("br"));
          elm.appendChild(document.createTextNode(txt[i]));
        }
      }else
        elm.firstChild.nodeValue = txt.length == 1 ? txt[0] : "Ingen markeret";
    }
</script>

<form name="formnavn">
<input type='checkbox' name='nr1' onclick="testfunc(this)" value ='nr1'>
<input type='checkbox' name='nr2' onclick="testfunc(this)" value ='nr2'>
<input type='checkbox' name='nr3' onclick="testfunc(this)" value ='nr3'>

<div id="hvad">Ingen markeret</div>
</form>

-- og så kan vi jo se, om ikke peter lige kan finde et par ekstra point, så ellebaek kan få sin rimelige betaling !-)

Velbekomme '-)
Avatar billede ofirpeter Nybegynder
27. december 2006 - 22:16 #12
Øv! Kom vej en fejl til at svare. Svar venligst her også, så ingen er snydt! :)
Avatar billede ofirpeter Nybegynder
27. december 2006 - 22:16 #13
Avatar billede roenving Novice
28. december 2006 - 05:55 #14
-- 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