Avatar billede tweak Nybegynder
07. juli 2005 - 11:31 Der er 16 kommentarer og
1 løsning

Validere mail, navn, hvor har du, osv

Jeg har noget kode som jeg ikke helt kan hitte:

function MM_validateForm() { //v4.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)!="Navn") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal indeholde en e-mail adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\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+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+'\n'; }
  } if (errors) alert('Beskeden kan ikke sendes før du har udfyldt:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->


I mine tekstbokse står der: E-mail, Navn, Emne, Hvor har du set Digitalife og så kommer besked boksen. Det er sådan at teksten står i boksen, og når man så klikke i den- forsvinder teksten og kommer tilbage når man klikker uden for den.

Problemet er at de ikke må kunne sende beskeden, med teksten- Emne, Navn og Hvor har du set Digitalife.?

Jeg har fundet ud af det med Navne boksen sådan: if (val) { nm=val.name; if ((val=val.value)!="Navn") {

Men jeg kan ikke hitte de andre, kan I hjælpe mig.

I kan se den her: http://www.digitalife.dk/mail.php
Avatar billede trekkies Juniormester
07. juli 2005 - 11:34 #1
Hvilken kode bruger du til mine  bokse, f.eks. navn?
Avatar billede tweak Nybegynder
07. juli 2005 - 11:37 #2
Hej trekkies,
Dem her:

<input name = "Navn"
<input emne= "Emne"
<input hvor="hvor"
Avatar billede trekkies Juniormester
07. juli 2005 - 11:37 #3
Jeg bruger denne kode:

En simpel asp fil:
f.eks. validator.asp

<script type="text/javascript">
<!--
    function Check_Form(theForm)
{
        err = '';

    <!-- Her undersøges om fornavn er fyldt, men andet end "Fornavn" -->
    if (theForm.fornavn.value == 'Fornavn')
    {
        <!-- Her er fejl meddelsen for fornavn. -->
        err += "Dit Fornavn\r";
    }
    else
    {
    <!-- Her fjernes de forskellige tegn fra boksen og erstattes af ingen ting -->
        test = theForm.fornavn.value;
        test = test.replace('<','');
        test = test.replace('>','');
        test = test.replace(':','');
        test = test.replace('¨','');
        test = test.replace('^','');
        test = test.replace('~', '');
        test = test.replace('*','');
        test = test.replace('!','');
        test = test.replace(',','');
        test = test.replace('"','');
        test = test.replace('#','');
        test = test.replace('£','');
        test = test.replace('@','');
        test = test.replace('¤','');
        test = test.replace('$','');
        test = test.replace('%','');
        test = test.replace('€','');
        test = test.replace('&','');
        test = test.replace('/','');
        test = test.replace('{','');
        test = test.replace('(','');
        test = test.replace('[','');
        test = test.replace(']','');
        test = test.replace('}','');
        test = test.replace('=','');
        test = test.replace('?','');
        test = test.replace('+','');
        test = test.replace('´','');
        test = test.replace('´','');
        test = test.replace('|','');
        theForm.fornavn.value = test;
    }
       
    if (err!= '')
    {
    <!-- Her er teksten som kommer frem hvis en af boksene ikke er udfyldt og fejl meddelsen er "err" bliver vist bagefter -->
        alert('Du bedes udfylde følgende felter:\r' + err);
            return (false);
    }
        else
    {
            return (true);
    }
}
//-->
</script>

Åben nu din side og lav en include file til validator.asp
du skal nu sætte dette ind i din form:
<form onsubmit="return Check_Form(this)" id="form" method="post" action="">
Avatar billede trekkies Juniormester
07. juli 2005 - 11:40 #4
Prøv at gå ind på denne side:
http://www.darkskies.dk/party/index.asp

Der kan du se at jeg har lavet en fukntion ligesom din, men man kan ikke sende før at f.eks. Fornavn boksen indeholder andet end Fornavn
Avatar billede tweak Nybegynder
07. juli 2005 - 11:40 #5
trekkies,

Jeg skal lige fodre min datter, så vender jeg tilbage :)
Avatar billede trekkies Juniormester
07. juli 2005 - 11:40 #6
Ok :)
Avatar billede trekkies Juniormester
07. juli 2005 - 12:17 #7
Det er meget kode du bruger til at undersøge din mail boks, her er den jeg bruger:
<!-- Her undersøges mail adressen for teng og @ og tegn igen  -->
var foo = theForm.email.value;
var filter =
/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
if (!filter.test(foo))
{
    <!-- Her er fejl meddelsen for email. -->
    err += 'Din e-mail adresse\r';
}
Avatar billede trekkies Juniormester
07. juli 2005 - 12:39 #8
Du skriver bare hvis du ikke forstår min kode :)
Avatar billede tweak Nybegynder
07. juli 2005 - 12:47 #9
Hej trekkies, jeg kan ikke og lære sikket aldrig det her, jeg kan simpelthen ikke se logikken i det :(

Al den kode jeg har vist ovenfor er noget jeg har lånt fra et spørgsmål her på eks.dk

Jeg ville helst hvis der kunne rydes op i det jeg har skrevet ovenfor og holde det hele i toppem af min mail side. Jeg kan godt se at min mail boks ser noget rodet ud i forhold til det du viser, men jeg aner heller ikke hvor jeg skulle sætte din kode ind, så du kan nok se jeg er ude på dybt vand hvad det her angår ;-)

Du får lige hele min kode som den ser ud:

<script type="text/javascript"><!--Mail formular-->
<!--
function MailTo(frm) {
    document.location.href='mailto:test@test.dk?body=Navn:%20'+frm.navn.value+'%0D%0AEmail:%20'+frm.email.value+'%0D%0AKommentar:%20'+frm.kommentar.value;
}

function MM_findObj(n, d) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.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)!="Navn") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' skal indeholde en e-mail adresse.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\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+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+'\n'; }
  } if (errors) alert('Beskeden kan ikke sendes før du har udfyldt:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
Avatar billede trekkies Juniormester
07. juli 2005 - 12:50 #10
Du beholder bare din kode :)

Om lidt kommer der en lille formel på dit navn felt, vent venligst ...
Avatar billede trekkies Juniormester
07. juli 2005 - 12:51 #11
Opret denne side: mail_validator.asp

Den fil skal have dette i sig:
<script type="text/javascript">
<!--
    function Check_Form(theForm)
{
        err = '';

    <!-- Her undersøges om fornavn er fyldt, men andet end "Fornavn" -->
    if (theForm.fornavn.value == 'Fornavn')
    {
        <!-- Her er fejl meddelsen for fornavn. -->
        err += "Dit Fornavn\r";
    }
    else
    {
    <!-- Her fjernes de forskellige tegn fra boksen og erstattes af ingen ting -->
        test = theForm.fornavn.value;
        test = test.replace('<','');
        test = test.replace('>','');
        test = test.replace(':','');
        test = test.replace('¨','');
        test = test.replace('^','');
        test = test.replace('~', '');
        test = test.replace('*','');
        test = test.replace('!','');
        test = test.replace(',','');
        test = test.replace('"','');
        test = test.replace('#','');
        test = test.replace('£','');
        test = test.replace('@','');
        test = test.replace('¤','');
        test = test.replace('$','');
        test = test.replace('%','');
        test = test.replace('€','');
        test = test.replace('&','');
        test = test.replace('/','');
        test = test.replace('{','');
        test = test.replace('(','');
        test = test.replace('[','');
        test = test.replace(']','');
        test = test.replace('}','');
        test = test.replace('=','');
        test = test.replace('?','');
        test = test.replace('+','');
        test = test.replace('´','');
        test = test.replace('´','');
        test = test.replace('|','');
        theForm.fornavn.value = test;
    }
     
    if (err!= '')
    {
    <!-- Her er teksten som kommer frem hvis en af boksene ikke er udfyldt og fejl meddelsen er "err" bliver vist bagefter -->
        alert('Du bedes udfylde følgende felter:\r' + err);
            return (false);
    }
        else
    {
            return (true);
    }
}
//-->
</script>

Nu kommer din mail form, vent venligst ...
Avatar billede trekkies Juniormester
07. juli 2005 - 12:53 #12
ups, ret nu din mail_validator.asp til dette:
<script type="text/javascript">
<!--
    function Check_Form(theForm)
{
        err = '';

    <!-- Her undersøges om fornavn er fyldt, men andet end "Navn" -->
    if (theForm.navn.value == 'Fornavn')
    {
        <!-- Her er fejl meddelsen for Navn. -->
        err += "Dit Navn\r";
    }
    else
    {
    <!-- Her fjernes de forskellige tegn fra boksen og erstattes af ingen ting -->
        test = theForm.navn.value;
        test = test.replace('<','');
        test = test.replace('>','');
        test = test.replace(':','');
        test = test.replace('¨','');
        test = test.replace('^','');
        test = test.replace('~', '');
        test = test.replace('*','');
        test = test.replace('!','');
        test = test.replace(',','');
        test = test.replace('"','');
        test = test.replace('#','');
        test = test.replace('£','');
        test = test.replace('@','');
        test = test.replace('¤','');
        test = test.replace('$','');
        test = test.replace('%','');
        test = test.replace('€','');
        test = test.replace('&','');
        test = test.replace('/','');
        test = test.replace('{','');
        test = test.replace('(','');
        test = test.replace('[','');
        test = test.replace(']','');
        test = test.replace('}','');
        test = test.replace('=','');
        test = test.replace('?','');
        test = test.replace('+','');
        test = test.replace('´','');
        test = test.replace('´','');
        test = test.replace('|','');
        theForm.navn.value = test;
    }
   
    if (err!= '')
    {
    <!-- Her er teksten som kommer frem hvis en af boksene ikke er udfyldt og fejl meddelsen er "err" bliver vist bagefter -->
        alert('Du bedes udfylde følgende felter:\r' + err);
            return (false);
    }
        else
    {
            return (true);
    }
}
//-->
</script>
Avatar billede tweak Nybegynder
07. juli 2005 - 13:00 #13
STOP trekkies, jeg manglede en formel som tjekkede min Hvor har du set Digitalife og Emne, mit Navne felt virker oppe i den kode, ved hjælp af:

if (val) { nm=val.name; if ((val=val.value)!="Navn") {
Avatar billede trekkies Juniormester
07. juli 2005 - 13:09 #14
Så tror jeg ikke at jeg kan hjælpe dig :(

Du kan prøve at spørge inde under javascript katagorien, da jeg ikke kan finde ud af din kode.

De ved nok mere om det end jeg gør .)
Avatar billede tweak Nybegynder
07. juli 2005 - 13:12 #15
Okay, det prøver jeg :) Men tak for forsøget.! Er det okay hvis jeg lukker med et svar og opretter et nyt der?
Avatar billede trekkies Juniormester
07. juli 2005 - 13:14 #16
Ja, det er det :)
Avatar billede tweak Nybegynder
07. juli 2005 - 13:19 #17
Okay, men tak for hjælpen.! ;)
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