Avatar billede mitbrugernavn Praktikant
21. oktober 2003 - 16:09 Der er 12 kommentarer og
1 løsning

validering af dynamisk chekcbox

har en form med varierende checkboxe, hvor mindst en skal være afkrydset før afsendelse, men hvad går galt, den sender selv om der ikke er afkrydset, her lidt kode......??????

fil med dynamisk checkbox

<script language="JavaScript" src="mini_kalender-clientscripts.js"></script>

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--

function Form1_Validator(theForm)
{

    if(theForm.form1.checkbox.checked == "on")
    {
        alert('no check');
        return false;
    }


  return (true);
}


//-->
</SCRIPT>

</head>


<form action="add_update.asp" name="Form1" method="post" onsubmit="return Form1_Validator(this)">

            <%
do until rs.eof
%>
            <tr>
              <td>
                <input type="checkbox" name="checkbox" value="<%=rs("navn")%>">
              </td>
              <td class="txt6"> <%=rs("navn")%></td>
            </tr>
            <%
rs.movenext
loop
%>

  <input type="submit" name="save" value="Indsæt booking" > 
</form>
Avatar billede mm12010 Nybegynder
21. oktober 2003 - 16:18 #1
function Form1_Validator(theForm){
    for(i=0;i<theForm.elements.length;i++){
        if(theForm.elements[i].checked==true){
            return true;
            }
        }
    alert('no check');
    return false;
    }
Avatar billede erikjacobsen Ekspert
21. oktober 2003 - 17:29 #2
Måske du skal

if(theForm.elements[i].type=="checkbox" && theForm.elements[i].checked==true){
Avatar billede mm12010 Nybegynder
21. oktober 2003 - 18:02 #3
ja, det kan man sige, men strengt taget er det vel ikke nødvendigt ?-)
Avatar billede roenving Novice
21. oktober 2003 - 22:57 #4
Du har forhåbentlig ret mm12010, men det efterlader jo altså ikke mulighed for nogen som helst for udvidelse af formen, jeg ville finde på at insistere på:

<input type="checkbox" name="checkbox<%=i%>" value="<%=rs("navn")%>">


-- og selvfølgelig have en asp-variabel med et nummer og så:

if(theForm.elements[i].name.indexOf("checkbox")>-1 && theForm.elements[i].checked==true){
Avatar billede mm12010 Nybegynder
21. oktober 2003 - 23:03 #5
har testet, og efter som jeg kan se at formen ikke indeholder andet, sprang jeg over hvor gæret var lavest, men ellers helt enig !-)
Avatar billede mitbrugernavn Praktikant
22. oktober 2003 - 08:24 #6
har testet nm12010 svar men den springer glad over. til orientering ligger der flere valideringer i samme function.

er der en mulighed for et konkret eksempel på roenvings svar ?
Avatar billede mm12010 Nybegynder
22. oktober 2003 - 11:42 #7
function Form1_Validator(theForm){
    for(i=0;i<theForm.elements.length;i++){
        if(theForm.elements[i].type=="checkbox" && theForm.elements[i].checked==true){
            return true;
            }
        }
    alert('no check');
    return false;
    }
----------------------------------------------
function Form1_Validator(theForm){
    for(i=0;i<theForm.elements.length;i++){
        if(theForm.elements[i].name.indexOf("checkbox")>-1 && theForm.elements[i].checked==true){
            return true;
            }
        }
    alert('no check');
    return false;
    }
Avatar billede mitbrugernavn Praktikant
22. oktober 2003 - 12:20 #8
tak for dit svar, men jeg har selv fået den fikset med dette

<%@LANGUAGE="VBSCRIPT"%>
<!-- #include file="connect.asp" -->
<!-- #include file="mini_kalender-serverscripts.js" -->
<!-- #include file="mini_kalender-serverscripts.vb" -->
<%
strSQL="Select * from grejbank"
set rs = conn.execute(strSQL)
%>
<html>
<head>
<script language="JavaScript" src="mini_kalender-clientscripts.js"></script>
<SCRIPT TYPE="text/javascript" LANGUAGE=JAVASCRIPT>
<!--
Count = 0
function checkCheckBoxes(hvad) {

  if (Count>=1){
  return true
  }else{
  alert('Husk at vælg grej igen.')
  return false
  }
}
//-->

<!--   
    function IsDataValid()
    {
        if (document.TheForm.Navn.value=='')
        {
            alert("Angiv venligst navn.");
            document.TheForm.Navn.focus();
            return false;
        }
if (document.TheForm.tlf.value=='')
        {
            alert("Angiv venligst tlf.");
            document.TheForm.tlf.focus();
            return false;
        }   
        else { return true; }
    }

//-->

</script>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form action="add_update.asp" method="post" name=TheForm onsubmit='return(checkCheckBoxes() && IsDataValid());'>
<%
do until rs.eof
%>
            <tr>
              <td>
                <input type="checkbox" name="checkbox" value="<%=rs("grejnavn")%>" onClick='(this.checked)?Count++:Count--'>
              </td>
              <td class="txt6"> <%=rs("grejnavn")%></td>
            </tr>           
<%
rs.movenext
loop
%> <br>
    Navn
    <input type="text" name="Navn" size="45" value="">
<br>
tlf:
    <input type="text" name="tlf" size="45" value="">
  <br>

    <input type="submit" value="indsæt" name="submit"></p>
</form>
       
</body>
</html>


men som tak for hjælpen får du alligevel poient.
Avatar billede mm12010 Nybegynder
22. oktober 2003 - 12:26 #9
hvem?
Avatar billede mitbrugernavn Praktikant
22. oktober 2003 - 12:34 #10
det skulle gerne være dig der skal have dem, men det kan godt være at jeg sidder og klokker i det, hvordan gør jeg og hvordan lukker jeg spørgsmålet ????
Avatar billede mm12010 Nybegynder
22. oktober 2003 - 12:39 #11
du har lukket spørgsmålet :o)

hvis du vil give mig point skal du åbne et nyt sgp med titlen: 'point til mm12010' og skrive: 'http://www.eksperten.dk/spm/416878' i spg-teksten
Avatar billede roenving Novice
22. oktober 2003 - 12:39 #12
Hvis du vil give mm12010 points nu, må du oprette et nyt spørgsmål i denne kategori med overskriften 'Points til mm12010' og så som spørgsmålstekst referencen til dette spørgsmål:
http://www.eksperten.dk/spm/416878
Avatar billede mm12010 Nybegynder
22. oktober 2003 - 12:42 #13
: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
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