Avatar billede peer Nybegynder
19. september 2001 - 13:04 Der er 15 kommentarer og
2 løsninger

Validering af checkboks

Jeg skal med et javascript kunne tjekke på om et vilkårligt antal checkbokse med tilhørende hidden variabel er tjekket. Jeg har prøvet at lave et javascript der via en for-løkke

for (i=0;i<[antal poster i db];i++)
if (theform.check+i.value == \"on\")
GØR ET ELLER ANDET....

Men dette virker ikke. Det er som om den altid står til at være sand.

Håber der er nogle der kan hjælpe.
Mvh
Peer G ;-)
Avatar billede olebole Juniormester
19. september 2001 - 13:07 #1
<ole>
if (theform.check+i.checked == \"true\")
/mvh
</bole>
Avatar billede olebole Juniormester
19. september 2001 - 13:08 #2
...eller:
  if (document.formNavn.check+i.checked == \"true\")
...afhængig af, hvad \'theform\' er for noget  :)
/mvh
Avatar billede peer Nybegynder
19. september 2001 - 13:15 #3
/olebole
Det virker ski ikke.
Avatar billede peer Nybegynder
19. september 2001 - 13:21 #4
<jsp:useBean id=\"q\" class=\"dk.infotrio.mobitrack.beans.Vogn\" scope=\"page\"/>
<%@ page import=\"java.sql.*\" %>
<!DOCTYPE HTML PUBLIC =-//W3C//DTD HTML 4.0 Transitional//EN\">
<HTML>
<HEAD>
<LINK href=\"../css/mobitrack.css\" type=text/css rel=StyleSheet>
<TITLE>::: InfoTrio - MobiTrack :::</TITLE>
<SCRIPT src=\"../js/functions.js\"></SCRIPT>
</HEAD>
<SCRIPT language=JavaScript>   
<!--
function makeCheck(theform) {
c = parseInt(theform.count.value);
check = \"\";
urlstreng = \"\";
vogn = \"\";
for (i=0;i<c;i++){
if(theform.check+i.value == true)
urlstreng = theform.vogn+i.value;
}
if (urlstreng == \"\") {
alert(\"Husk at vælge vogne\")
return (false);}
else {
theform.url.value=urlstreng;
return (true);
}

}
//-->
</SCRIPT>
<BODY bgcolor=\"#516093\" TOPMARGIN=\"0\">
<h1><center>Tracking - Vis vogne</center></h1>
<table border=\"0\" width=\"100%\" cellspacing=\"2\" cellpadding=\"0\">
  <tr>
    <td></td>
    <td width=\"30\"></td>
    <td width=\"100\"></td>
    <td width=\"200\"></td>
    <td width=\"100\"></td>
    <td width=\"100\" align=\"right\"></td>
    <td></td>
  </tr>
  <tr>
    <td></td>
    <td width=\"30\" bgcolor=\"#899DB9\" align=\"left\">
      <p align=\"left\"><b>&nbsp;Vælg</b></p>
    </td>
    <td width=\"100\" bgcolor=\"#899DB9\" align=\"left\"><b>&nbsp;Vognnr.</b></td>
    <td width=\"200\" bgcolor=\"#899DB9\" align=\"left\"><b>&nbsp;Chauffør</b></td>
    <td width=\"100\" bgcolor=\"#899DB9\" align=\"left\"><b>&nbsp;Postnr.</b></td>
    <td width=\"100\" bgcolor=\"#899DB9\" align=\"right\">
      <p align=\"right\"><b>&nbsp;Hastighed&nbsp; </b></p>
    </td>
    <td></td>
  </tr>
<form method=\"post\" action=\"viskort.jsp\" >
  <%
  int count=0;
  try {
ResultSet rs = q.visVogne();


while (rs.next())
{ 
out.println(\"<tr><td></td>\");
out.println(\"<td width=30 align=left>&nbsp;<input type=checkbox class=none name=check\"+count+\"></td>\");
out.println(\"<td width=100>&nbsp;\" + rs.getInt(\"vognnr\") + \"</td>\");
out.println(\"<input type=hidden name=vogn\"+count+\" value=\"+ rs.getInt(\"vognnr\")+\"></td>\");
out.println(\"<td width=200>&nbsp;\" + rs.getString(\"navn\") + \"</td>\");
out.println(\"<td width=100>&nbsp;\" + rs.getInt(\"V_POSTNR\") + \"</td>\");
out.println(\"<td width=100 align=right>&nbsp;\" + Math.floor(rs.getDouble(\"Speed\")) + \"&nbsp;km/t&nbsp;</td>\");
out.println(\"<td></td></tr>\");
count++;
}
}
catch (Exception e)
{
}

%> 
</table>
<br>
<input type=\"hidden\" name=\"count\" value=\"<%=count%>\">
<input type=\"hidden\" name=\"url\">
<center>
<input type=image img src=\"../images/visvogne.gif\" class=\"none\" alt=\"Vis de valgte vogne på et kort\" >
</center>
</form>
</BODY>
</HTML>
Avatar billede peer Nybegynder
19. september 2001 - 13:22 #5
Forresten lige lidt kildekode så det er lidt nemmere at forstå hvad jeg gerne vil.
Avatar billede olebole Juniormester
19. september 2001 - 13:26 #6
Du kører jo aldrig din funktion  =oD
Prøv:
<form method=\"post\" action=\"viskort.jsp\" onsubmit=\"return makeCheck(this);\">
Avatar billede jakoba Nybegynder
19. september 2001 - 13:44 #7

for (i=0;i<[antal poster i db];i++)
    if (theform.check+i.value == \"on\") // gal betingelse.

hvor skal browseren vise fra at det + skal lægger check og i sammen og ikke lægge thefor.check og i.value sammen.

prøv med:

for (i=0;i<[antal poster i db];i++)
    if (theform.elements[\'check\'+i].value == \"on\")

mvh JakobA
Avatar billede jakoba Nybegynder
19. september 2001 - 13:46 #8
Ups.  vise far  ->  vide fra
Avatar billede olebole Juniormester
19. september 2001 - 13:48 #9
Jakob >> den er da vist ikke meget bedre  :)


Avatar billede jakoba Nybegynder
19. september 2001 - 13:52 #10
Næ den er ikke nok, men så adresserer han i det mindste checkboksene.
Når vi så tilføjer dit svar bliver det:

for (i=0;i<[antal poster i db];i++)
    if (theform.elements[\'check\'+i].checked == \"true\")

så vil jeg tro det hele virker.

mvh JakobA
Avatar billede olebole Juniormester
19. september 2001 - 14:05 #11
Da du ikke behøver at kalde med array-notation i en form, men sagtens kan bruge dot-notation, adskiller de sig vist ikke så meget fra hinanden  :)
/mvh
Avatar billede jakoba Nybegynder
19. september 2001 - 14:31 #12
Avatar billede olebole Juniormester
19. september 2001 - 14:38 #13
Jamen, Jakob....kan du ikke få fat i et tekstfelt med:
document.formnavn.feltnavn ?
Avatar billede olebole Juniormester
19. september 2001 - 14:40 #14
Undskyld...!!!!!!! Det er mig, der er et kvaj!  :)
Avatar billede jakoba Nybegynder
19. september 2001 - 14:49 #15
Olebole >> Det vil jeg ikke gå med til at du er!

For hvis jeg gjorde måtte jeg også indrømme at jeg ofter er et kvaj :-))

mvh JakobA
Avatar billede olebole Juniormester
19. september 2001 - 14:50 #16
Okay....den trækker jeg i mig igen  =o)
Avatar billede jumper Nybegynder
20. september 2001 - 02:38 #17
Dette burde nu være nok:

for (var i=0;i<[antal poster i db];i++){
  if (theform[\"check\" + i].checked){
    // Noget;
  }
}

/Thor
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