Avatar billede Spassmager Nybegynder
18. februar 2010 - 17:24 Der er 5 kommentarer og
1 løsning

HTML, checkbox values og if-betingelser....

bruger et spørgeskema pgr der hedder Analyzer.dk og har følgende problem:

Har et multiple-spg (checkbox) som nedenunder:

a: Ja
b: Nej, udelad...
c: Nej, inkludere....

Man må gerne svar b + c eller kun b eller kun c eller kun a

man må IKKE svare a + b eller a + c

Jeg har prøvet at tilpasse en tidligere html-kode der advarer hvis man har afkrydset mere end 3 svarmuligheder, hvilket virker fint! Den ser således ud:

<script>function CustomTjeck(){var checkbox_choices = 0;for(counter = 0; counter < 7; counter++) {if (document.forms[0].elements["answer3"][counter].checked){ checkbox_choices++; }};if (checkbox_choices > 3 ){alert("Du bedes angive max 3 svar.");return false;}else{return true;}}</script>

Men kan ikke justere den rigtigt og få det til at fungere så man kan restriktere hvilke der må afkrydses og hvilke der ikke må...

Jeg ved, at a tildeles værdien 1, b værdien 2 og c værdien 3...

Håber I kan hjælpe mig!
18. februar 2010 - 17:41 #1
Det er vist en korrigeret gentagelse af tidliger indlaeg.  Hvis a=1 o.s.v. saa maa funktionen vel blive (ikke testet for jeg skal vaek)

<script>
function CustomTjeck()
{
  if (document.forms[0].elements["answer3"][1].checked)
  {
    if (document.forms[0].elements["answer3"][2].checked)
    {
      alert("a maa ikke kombineres med b eller c");
      return false;
    }
    if (document.forms[0].elements["answer3"][3].checked)
    {
      alert("a maa ikke kombineres med b eller c");
      return false;
    }
  }
  else return true;
}
</script>
Avatar billede Spassmager Nybegynder
18. februar 2010 - 18:17 #2
Den tjekker jeg lige i morgen! Men mangler der ikke lidt i den sidste sætning?
18. februar 2010 - 21:44 #3
Jeg ville sige tvaert imod, det skulle kun have vaeret return true.  Stadig ikke testet (jeg har ikke haft tid til at bygge et eksempel op) hvis ikke a er valgt saa skal der returneres true.  Hvis a er valgt og funktionen "overlever" testen om ogsaa b eller c er valgt skal der ogsaa returneres true.

Jeg har foroevrigt fulgt koden i din funktion saa noeje som muligt.


<script>
function CustomTjeck()
{
  if (document.forms[0].elements["answer3"][1].checked)
  {
    if (document.forms[0].elements["answer3"][2].checked or document.forms[0].elements["answer3"][3].checked)
    {
      alert("a maa ikke kombineres med b eller c");
      return false;
    }
  }
  return true;
}
</script>

Jeg haaber det virker.
Avatar billede Spassmager Nybegynder
19. februar 2010 - 15:42 #4
Hej Christian. Testede din første kode på arbejdet og den virkede NÆSTEN som den skulle, eneste problem var dog at når jeg kun valgte a så skete der intet!

Jeg testede så din anden kode og den virkede slet ikke, ved ikke helt hvorfor!

MEN din tankegang var rigtig, så jeg prøvede den første kode igen blot hvor jeg slettede "else" til sidst så den færdige kode ser således ud:

<script>
function CustomTjeck()
{
  if (document.forms[0].elements["answer3"][1].checked)
  {
    if (document.forms[0].elements["answer3"][2].checked)
    {
      alert("a maa ikke kombineres med b eller c");
      return false;
    }
    if (document.forms[0].elements["answer3"][3].checked)
    {
      alert("a maa ikke kombineres med b eller c");
      return false;
    }
  }
  return true;
}
</script>

Og nu virker den fuldstændig perfekt!! :)

Post lige som et svar så du kan få nogle credits! Good job :)
19. februar 2010 - 18:16 #5
I min #3 ville jeg oprindelig kun rette at det sidste return true skulle vaere uden else, men saa gik jeg videre og proevede at kombinere de to if statements med en or og det siger du virker ikke.  Men jeg er glad at det lykkedes ved faelles hjaelp.
Avatar billede Spassmager Nybegynder
19. februar 2010 - 23:36 #6
jamen man kan sikkert også kombinere det så man får en kortere kode... det virkede dog ikke, men jeg er helt tilfreds med den anden kode :)
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