Avatar billede pyrus-o2 Nybegynder
09. oktober 2000 - 11:01 Der er 6 kommentarer og
1 løsning

Validering af flere sæt checkboxe

Jeg sidder med et lille irriterende problem. Muligvis er jeg bare blevet blind eller har ikke fået kaffe nok.
Er der en venlig sjæl der kan kigge på og forklare mig hvorfor nedenstående validering
returnere true selvom der ikke er sat hak i noget produktinformations felt?
Den kommer med alerten men submitter alligevel.
<script Language=\"JavaScript\"><!--

function check_Form(MyForm)
{
for (i = 0; i < MyForm.TargetArea.length; i++) 
{
        if (MyForm.TargetArea[i].checked)
        {
for (j = 0; j < MyForm.SolutionInfo.length; j++) 
{
        if (MyForm.SolutionInfo[j].checked)
        {
  return (true);
        }
    }
    alert(\'Produktinformation mangler\');
    MyForm.EventInfo_Reason[1].focus();
    return (false) ;   
        }
    }
    alert(\'Målgruppe mangler\');
    MyForm.TargetArea[1].focus();
    return (false) ;
}
//--></script>

Her er et udpluk af formularen
<form name=MyForm action=results.asp onsubmit=\"return check_Form(this)<input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=\"16\">Butikker<br>
        <input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=17>Designere af informations-systemer <br>
        <input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=18>Forretnings-beslutningstagere <br>
        <input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=19>Hjemmebrugere<br>

<table border=\"0\">
    <tr>
    <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product1</font></td>
    <td><input tabindex=42 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product1\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
    <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product2</font></td>
    <td><input tabindex=43 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product2\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
      <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product3</font></td>
      <td><input tabindex=44 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product3\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
      <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product4</font></td>
      <td><input tabindex=45 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product4\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
Avatar billede halnet Nybegynder
09. oktober 2000 - 11:06 #1
Jeg ved ikke om det er en fejl, eller om du har undladt noget!!

<form name=MyForm action=results.asp onsubmit=\"return check_Form(this)\">
<input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=\"16\">Butikker<br>

- Anders
Avatar billede halnet Nybegynder
09. oktober 2000 - 11:12 #2
function check_Form(MyForm) {
  for (i = 0; i < MyForm.TargetArea.length; i++) {
    if (MyForm.TargetArea[i].checked) {
      for (j = 0; j < MyForm.SolutionInfo.length; j++) {
        if (MyForm.SolutionInfo[j].checked) {
          return (true);
        }
      }
      alert(\'Produktinformation mangler\');
      MyForm.SolutionInfo[1].focus();
      return (false) ;   
    }
  }
  alert(\'Målgruppe mangler\');
  MyForm.TargetArea[1].focus();
  return (false) ;
}

så er det lidt nemmere at se strukturen... :o)

- Anders
Avatar billede pyrus-o2 Nybegynder
09. oktober 2000 - 11:12 #3
Det er en tastebøf!
Det du har skrevet er også hvad der er i koden, fik bare ikke taget det hele med.
Så for god ordens skyld. Kommer det lige igen her:
<script Language=\"JavaScript\"><!--

function check_Form(MyForm)
{
for (i = 0; i < MyForm.TargetArea.length; i++) 
{
        if (MyForm.TargetArea[i].checked)
        {
for (j = 0; j < MyForm.SolutionInfo.length; j++) 
{
        if (MyForm.SolutionInfo[j].checked)
        {
  return (true);
        }
    }
    alert(\'Produktinformation mangler\');
    MyForm.EventInfo_Reason[1].focus();
    return (false) ;   
        }
    }
    alert(\'Målgruppe mangler\');
    MyForm.TargetArea[1].focus();
    return (false) ;
}
//--></script>


<form name=MyForm action=results.asp onsubmit=\"return check_Form(this)\">
<input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=\"16\">Butikker<br>
<input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=17>Designere af informations-systemer <br>
        <input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=18>Forretnings-beslutningstagere <br>
        <input type=\"checkbox\" value=\"YES\" name=\"TargetArea\" tabindex=19>Hjemmebrugere<br>

<table border=\"0\">
    <tr>
    <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product1</font></td>
    <td><input tabindex=42 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product1\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
    <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product2</font></td>
    <td><input tabindex=43 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product2\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
      <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product3</font></td>
      <td><input tabindex=44 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product3\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
    <tr>
      <td><font FACE=\"Verdana, Arial, Helvetica, Sans-serif\" size=\"1\" class=\"bodytext\">Product4</font></td>
      <td><input tabindex=45 type=\"checkbox\" name=\"SolutionInfo\" value=\"Product4\">&nbsp;&nbsp;&nbsp;&nbsp;</td>
    </tr>
</table>

Denne gang har jeg ovenikøbet afsluttet tabellen! ;-}
Avatar billede halnet Nybegynder
09. oktober 2000 - 11:21 #4
Skal man have mulighed for at vælge flere options??
(Ellers kan du nemmerlig bruge radio)

EventInfo_Reason ... burde der ikke stå SolutionInfo??

Hvor meget skal være afkrydset før du vil acceptere det??

- Anders
Avatar billede pyrus-o2 Nybegynder
09. oktober 2000 - 11:27 #5
Der skal såmænd være mindst 1 hak. så det virker
rent faktisk nu!!!!
Takker og bukker ærbødigt for Anders
Du kan hente dine points! Når du lyster
Og selvfølgelig er det SolutionInfo der skal focus på.


Avatar billede halnet Nybegynder
09. oktober 2000 - 11:27 #6
function check_Form(MyForm) {
  Target = -1;
  for (i = 0; i < MyForm.TargetArea.length; i++) {
    if (MyForm.TargetArea[i].checked) {
      Target = i;
    }
  }
  Solution = -1;
  for (j = 0; j < MyForm.SolutionInfo.length; j++) {
    if (MyForm.SolutionInfo[j].checked) {
      Solution = j;
    }
  }
  if (Target == -1) {
    alert(\'Målgruppe mangler\');
    MyForm.TargetArea[1].focus();
    return false;
  }
  if (Solution == -1) {
    alert(\'Produktinformation mangler\');
    MyForm.SolutionInfo[1].focus();
    return false;   
  }
  return true;
}

Prøv lige det her!

- Anders
Avatar billede halnet Nybegynder
09. oktober 2000 - 11:29 #7
hæhæ... jeg er helt grøn i javascript, så jeg var nok bare heldig!!

- Anders
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