Avatar billede t-hviid Nybegynder
13. oktober 2005 - 21:14 Der er 9 kommentarer og
1 løsning

Er der nogle der kan hitte hoved eller hale i dette?

function YY_checkform() { //v4.66
//copyright (c)1998,2002 Yaromat.com
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}

Det tjekker min formular godt nok, jeg vil bare gerne at i post nr. skal der være 4 tal.

Ved formularen er der dette:
<form action="<?php echo $editFormAction; ?>" method="POST" name="ret_bruger" id="ret_bruger" onSubmit="YY_checkform('ret_bruger','kontaktperson','#q','0','Der skal v&aelig;re indtastet en kontaktperson','adresse','#q','0','Der skal v&aelig;re indtastet en adresse','post','#q','0','Der skal v&aelig;re indtastet et post nr.','bynavn','#q','0','Der skal v&aelig;re indtastet et bynavn','email','#S','2','Indtast venligst en gyldig emailadresse');return document.MM_returnValue">

Er lavet gennem Dreamweaver!
Avatar billede olebole Juniormester
13. oktober 2005 - 21:30 #1
<ole>

Hvad med alle de danskere, der kun har tre ciffre i deres postnummer?
- og hvad med de danskere, der arbejder i Danmark, men tager til Malmø eller Lund og sover?

/mvh
</bole>
Avatar billede t-hviid Nybegynder
13. oktober 2005 - 21:41 #2
Er alle danske post ikke med 4 cifre ?????????? De kan sove hvor de vil :-) Dette er kun for folk bosat i DK. Jeg har dog droppet det DW her har lavet og efter at have kigget rundt fået fabrikeret mit eget. Dog roder jeg stadig med de 4 cifre i post nr. Nu ser det således ud:
<script type="text/javascript">
function valider(f){
  if(f.kontaktperson.value==""){
    alert('Der skal indtastes en kontaktperson');
    f.kontaktperson.focus();
    return false;
  }
  if(f.adresse.value==""){
    alert('Der skal indtastes en adresse');
    f.adresse.focus();
    return false;
  }
    if(f.post.length!= 4){
    alert('Der skal indtastes et gyldigt post nr.');
    f.post.focus();
    return false;
  }
    if(f.bynavn.value==""){
    alert('Der skal indtastes et bynavn');
    f.bynavn.focus();
    return false;
  }
    var regexp = /^[\w\.\-_]+@[\w\-_]+\.[\w\.\-_]+$/i;
  tekst=f.email.value.toLowerCase();
  if (!regexp.test(tekst){
      alert ("Der skal stå en gyldig e-mail adresse i tekst feltet");
      return false;};
  }
  return true;
}
</script>
Avatar billede pidgeot Nybegynder
13. oktober 2005 - 21:45 #3
"Er alle danske post ikke med 4 cifre ??????????"

Færøerne bruger kun 3 cifre, og der er også nogle få postnumre her i Danmark der kun har 3 - disse er dog forbeholdt firmaer, hvis man kan stole på Post Danmarks oplysninger: http://www.postdanmark.dk/iis/postnumre/_content/Download.asp
Avatar billede t-hviid Nybegynder
13. oktober 2005 - 21:48 #4
Det viste jeg ikke - man bliver hele tiden klogere. Så må jeg jo hellere nøjes med at der minimum skal være 3 tal
Avatar billede t-hviid Nybegynder
13. oktober 2005 - 21:51 #5
Er der nogle der kan hjælpe med scriptet?
Avatar billede olebole Juniormester
13. oktober 2005 - 21:57 #6
if(!f.post.value.match(/^\d{3,4}$/)){
Avatar billede t-hviid Nybegynder
13. oktober 2005 - 22:03 #7
Tæt på hvad jeg også var kommet frem til :
<script type="text/javascript">
function valider(f){
  if(f.post.value!=''&&!f.post.value.match(/^\d{4}$/))    {       
    alert('Post nr. skal angives med 4 cifre!');
    f.post.focus();
    return false;
  }
  if(f.kontaktperson.value=='')    {       
    alert('Du skal udfylde feltet med dit navn!');
    f.kontaktperson.focus();
    return false;
  }

  if(f.adresse.value=='')    {       
    alert('Du skal udfylde feltet med din adresse!');
    f.adresse.focus();
    return false;
  }

  if(f.bynavn.value=='')    {       
    alert('Du skal udfylde feltet med din by!');
    f.bynavn.focus();
    return false;
  }

  var regexp = /^[\w\.\-_]+@[\w\-_]+\.[\w\.\-_]+$/i;
  tekst=f.email.value.toLowerCase();
  if (!regexp.test(tekst)){
      alert ("Der skal stå en gyldig e-mail adresse i tekst feltet");
      f.email.focus();
      return false;
  }

  return true;
}
</script>

Men der er point til dig olebole for detaljen if(!f.post.value.match(/^\d{3,4}$/)){

:-)
Avatar billede roenving Novice
16. oktober 2005 - 15:34 #8
-- og din regexp til mail-validering er også forkert (og iøvrigt for striks også !-)

  var regexp = /^.*?@\w[\w\-_]*\.[a-z]{2,6}$/i;
Avatar billede t-hviid Nybegynder
22. november 2005 - 22:04 #9
olebole det er ved at være lukketid her! Lækker du et svar eller skal jeg tage point retur?
Avatar billede t-hviid Nybegynder
29. november 2005 - 14:27 #10
Lukker!
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