Avatar billede jmc Nybegynder
24. oktober 2003 - 00:35 Der er 6 kommentarer og
1 løsning

Hvorfor virker denne validering ikke? jeg vedlægger functionerne

//denne bliver ikke kørt?

function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal være en gyldig email-adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (val!=''+num) errors+='- '+nm+' skal være et tal.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' skal være et tal mellem '+min+' og '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' skal udfyldes.\n'; }
  } if (errors) alert('Følgende fejl opstod:\n'+errors);
  document.MM_returnValue = (errors == '');
}

//denne her virker ok
function Confirm() {
if (!confirm("Er du sikker på at du vil tilmelde dig dette arrangement?"))
    {
    return false;
    }

}



længere nede:
<form action=tilmeld.asp method=post onSubmit=""return Confirm(); MM_validateForm('Medlemsnummer','','RinRange10000:99999','Navn','','R','Firma','','R','Aktivitet','','R','Adresse','','R','Postnummer/By','','R','Email','','NisEmail','Telefonnummer','','RisNum');return document.MM_returnValue"">" & _
                        "<input name=Type type=hidden value=""Aktivitet"">" & _
Avatar billede tchami Nybegynder
24. oktober 2003 - 00:40 #1
Hmm, kan du ikke poste hele din kode?
Avatar billede jmc Nybegynder
24. oktober 2003 - 00:50 #2
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal være en gyldig email-adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (val!=''+num) errors+='- '+nm+' skal være et tal.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' skal være et tal mellem '+min+' og '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' skal udfyldes.\n'; }
  } if (errors) alert('Følgende fejl opstod:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function Confirm() {
if (!confirm("Er du sikker på at du vil tilmelde dig dette arrangement?"))
    {
    return false;
    }

}

//-->
</script>

"<form action=tilmeld.asp method=post onSubmit=""return Confirm(); MM_validateForm('Medlemsnummer','','RinRange10000:99999','Navn','','R','Firma','','R','Aktivitet','','R','Adresse','','R','Postnummer/By','','R','Email','','NisEmail','Telefonnummer','','RisNum');return document.MM_returnValue"">" & _



if oRS("broadcast") = "True" then       
                        tekst = tekst & "<p class=mellem>Tilmelding til: <br>" & oRS("aktivitet") & "</p>" & _
                        vbCrLf & "<form action=tilmeld.asp method=post onSubmit=""return Confirm(); MM_validateForm('Medlemsnummer','','RinRange10000:99999','Navn','','R','Firma','','R','Aktivitet','','R','Adresse','','R','Postnummer/By','','R','Email','','NisEmail','Telefonnummer','','RisNum');return document.MM_returnValue"">" & _
                        "<input name=Type type=hidden value=""Aktivitet"">" & _
                        "<input name=Type2 type=hidden value=""" & oRS("aktivitet") & """>" & _
                        "<input name=Aktivitet type=hidden value=""" & oRS("aktivitet") & """>" & _
                        "<input name=mødedato type=hidden value=""" & oRS("datofra") & """>"
                       
                       
                        if session("user_id") = "" Then
                            tekst = tekst &_
                            "<P>Medlemsnummer<br><input name=Medlemsnummer type=text><br>" & _
                            "Navn<br><input name=Navn type=text><br>" & _
                            "Firma<br><input name=Firma type=text><br>" & _
                            "Adresse<br><input name=Adresse type=text><br>" & _
                            "Postnummer/By<br><input name=Postnummer/By type=text><br>" & _
                            "Email<br><input name=Email type=text><br>"&_
                            "Telefonnummer<br><input name=Telefonnummer type=text ><br></p>"
                           
                        else   
                           
                          Set Conn = Server.CreateObject("ADODB.connection")
                            Conn.ConnectionString = Application("db")
                            Conn.Open
                                set rs = Server.CreateObject("ADODB.recordset")
                                rs.Open "Select * From medlemmer Where medlemsnr = "&session("user_id")&" ", conn
                       
                           
                           
                            tekst = tekst &_
                            "<P>Medlemsnummer<br><input name=Medlemsnummer type=text value="""& rs.fields.item("medlemsnr").value& """><br>" & _
                            "Navn<br><input name=Navn type=text value="""& rs.fields.item("fornavn").value & " " & rs.fields.item("efternavn").value& """><br>" & _
                            "Firma<br><input name=Firma type=text value="""& rs.fields.item("Firma").value& """><br>" & _
                            "Adresse<br><input name=Adresse type=text value="""& rs.fields.item("Adresse").value&" "&rs.fields.item("Adresse2").value& """><br>" & _
                            "Postnummer/By<br><input name=Postnummer/By type=text value="""& rs.fields.item("vby").value& """><br>" & _
                            "Email<br><input name=Email type=text value="""& rs.fields.item("email").value& """><br>"&_
                            "Telefonnummer<br><input name=Telefonnummer type=text value="""& rs.fields.item("telefon").value& """><br></p>"
                       
                        rs.close
                      Conn.close
                       
                        end if
                       
                       
                       
                       
                       
                       
                       
                       
                        tekst = tekst  & CH1
                        tekst = tekst  & CH2 
                        tekst = tekst  & CH3
                        tekst = tekst  & CH4
                        tekst = tekst  & CH5
                        tekst = tekst  & CH6
                        tekst = tekst  & CH7
                        tekst = tekst  & CH8
                        tekst = tekst  & CH9
                        tekst = tekst  & CH10 & _
                   
                    "<br><input value=""Send tilmelding"" type=submit></form>"
                    else
                    tekst = tekst & ("<span class=sti>Arrangementet er ikke klar for tilmelding!</span>")
                end if
               
                end if
Avatar billede jmc Nybegynder
24. oktober 2003 - 00:58 #3
Jeg kan ikke give mere af koden end dette, håber du kan hjælpe mig frem ti lhvad fejlen kunne være. Den kører den første (confim) men ikke den anden, når man klikker ja eller nej ved dialogen [Er du sikker på at du vil tilmelde dig dette arrangement?]
Den kører ikke MM_validateForm?
Avatar billede tchami Nybegynder
24. oktober 2003 - 01:00 #4
Først og fremmest har du to steder et form-tag, det er vel ikke meningen?

Du skal udskifte det der står i onSubmit i dit/dine form-tags med:
MM_validateForm('Medlemsnummer','','RinRange10000:99999','Navn','','R','Firma','','R','Aktivitet','','R','Adresse','','R','Postnummer/By','','R','Email','','NisEmail','Telefonnummer','','RisNum');return document.MM_returnValue

og så skal du ændre funktionen MM_validateForm til:
function MM_validateForm() { //v3.0

    if (!confirm("Er du sikker på at du vil tilmelde dig dette arrangement?"))
    {
    return false;
    }

  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal være en gyldig email-adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (val!=''+num) errors+='- '+nm+' skal være et tal.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' skal være et tal mellem '+min+' og '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' skal udfyldes.\n'; }
  } if (errors) alert('Følgende fejl opstod:\n'+errors);
  document.MM_returnValue = (errors == '');
}

Så skulle det virke :)
Avatar billede roenving Novice
24. oktober 2003 - 01:02 #5
Øeh, du gør da en del ting flere gange ?-)

For det første er der vel ikke nogen grund til at opfinde en confirm-funktion, som findes i forvejen ...

-- ihvertfald er det ikke hensigtsmæssigt at genbruge funktionsnavne selv om man ved at bruge et stort bogstav differentierer dem fra de native funktioner ...

Men denne onsubmit _afslutter_ evalueringen med 'return Confirm', så selvfølgelig udføres valideringen ikke ...

<form action='tilmeld.asp' method='post' onSubmit=""MM_validateForm('Medlemsnummer','','RinRange10000:99999','Navn','','R','Firma','','R','Aktivitet','','R','Adresse','','R','Postnummer/By','','R','Email','','NisEmail','Telefonnummer','','RisNum');return (confirm("Er du sikker på at du vil tilmelde dig dette arrangement?")&&document.MM_returnValue)"">"
Avatar billede jmc Nybegynder
12. december 2003 - 22:22 #6
hvem skal have points?
Avatar billede jmc Nybegynder
24. maj 2005 - 14:49 #7
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