Avatar billede muggen Nybegynder
06. november 2003 - 23:36 Der er 11 kommentarer og
2 løsninger

Validering af dynamiske checkboxe

Jeg lister nogle produkter fra en database og for hvert produkt bliver der også indsat en checkbox (sat ind via HTML kode på .asp siden). Brugeren kan efterfølgende udvælge nogle produkter som han vil kigge nærmere på ved at markere chechboxene og derefter klikke på en Submit knap for at få detaljer og de valgte produkter. Det hele virker fint, men jeg mangler lige et client-side script der validerer at mindst én sheckbox er tjekket af. Hvordan gør jeg det?

Det skal siges at alle checkboxene har det samme navn "compare" men de får en value som svarer til det enkelte produkts id fra databasen. På forhånd tak for hjælpen
Avatar billede medions Nybegynder
06. november 2003 - 23:40 #1
Du siger bare.

<%
  For Each Item In Request.Form
    Response.Write(Item & " - " & Request.Form(Item"))
  Next
%>

//>Rune
Avatar billede mm12010 Nybegynder
06. november 2003 - 23:42 #2
funtion boxe(dinForm){
  dinForm.elemnts=el;
  for(i=0;el.length;i++){
    if(el[i].type='checkbox'&&el[i].checked){
      return true;
      }
    }
  alert("check en mindst en box")
  return false;
  }
Avatar billede mm12010 Nybegynder
06. november 2003 - 23:43 #3
og så kalder du den når formen submittes:

<from ........... onSubmit="return boxe(this);"
Avatar billede eagleeye Praktikant
06. november 2003 - 23:44 #4
du laver et javescript som tæller antallet inden du submittter..

Eks

<script>
function antalChecked(theform) {
var antalOn = 0;
if (document.all || document.getElementById) {
  for (i = 0; i < theform.length; i++) {
    var tempobj = theform.elements[i];
    if (tempobj.type.toLowerCase() == "checkbox" && tempobj.checked == true && tempobj.name.toLowerCase() == "compare")
      antalOn = antalOn + 1;
  }
}
  if (antalOn>=1) {
    return true;
  }
  else
  {
    alert("Vælg mindst en vare!");
    return false;
  }

}
</script>


og så formtaggen:

<form action="" method="post" onsubmit="return antalChecked(this);">
Avatar billede mm12010 Nybegynder
06. november 2003 - 23:44 #5
<form ........... onSubmit="return boxe(this);">
Avatar billede muggen Nybegynder
06. november 2003 - 23:44 #6
Medions > Jeg vil have en javascript alertbox der kommer frem i det øjeblik brugeren trykker på Submit knappen uden at have valgt mindst én checkbox. Hvordan er det lige jeg gør det når alle checkboxe har det samme navn?
Avatar billede medions Nybegynder
06. november 2003 - 23:46 #7
Jamen så er du i den forkerte kategori, prøv at opret dit spm under JavaScript istedet for, siden det intet har med ASP at gøre!

//>Rune
Avatar billede muggen Nybegynder
07. november 2003 - 00:01 #8
mm12010 > Jeg får en Runtime error når jeg kalder siden:

linie: 17
Error: Expected ';'

Hvor er det lige der mangler et semikolon i dit script?
Avatar billede mm12010 Nybegynder
07. november 2003 - 00:05 #9
<script language="javascript" type="text/javascript">
function boxe(dinForm){
  dinForm.elemnts=el;
  for(i=0;el.length;i++){
    if(el[i].type='checkbox'&&el[i].checked){
      return true;
      }
    }
  alert("check en mindst en box");
  return false;
  }
</script>
Avatar billede muggen Nybegynder
07. november 2003 - 00:10 #10
mm12010 > Jeg får ikke Runtine fejl længere, men den validerer til gengæld ingenting. Jeg har kun skiftet navnet på formen ud - Er der andet der skal udskiftes?
Avatar billede muggen Nybegynder
07. november 2003 - 00:20 #11
mm12010 > Jeg fik ikke dit til at virke men det eagleeye sendte virker fint. I får begge point.
Avatar billede mm12010 Nybegynder
07. november 2003 - 00:21 #12
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Validering af dynamiske checkboxe</title>
<script language="javascript" type="text/javascript">
function boxe(dinForm){
  el=dinForm.elements;
  for(i=0;i<el.length;i++){
  //alert(el[i].type+"\n"+el[i].checked)
    if(el[i].type=='checkbox'&&el[i].checked){
      return true;
      }
    }
  alert("check en mindst en box");
  return false;
  }
</script>
</head>
<body>
<form name="formular" method="post" action="?submit=true" onSubmit="return boxe(this);">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="checkbox" name="compare" value="checkbox">
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
Avatar billede mm12010 Nybegynder
07. november 2003 - 00:22 #13
det var bare mig der manglede halvdelen af fingrene da jeg skrev de første...

takker for point :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
Kurser inden for grundlæggende programmering

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