Avatar billede andersasp Nybegynder
01. juni 2004 - 18:15 Der er 4 kommentarer og
1 løsning

Validate form bestemte numre

Hejsa!

Jeg har en form hvor postnr kun kan være mellem 8000:8350 ellers kommer den med en kommentar!  Dette skal jeg dog have ændret til at det er nogle bestemte numre hvilket er: Hvordan gør man lige det :?

8000, 8100, 8200, 8210, 8220, 8230, 8240, 8250, 8260, 8270, 8310, 8320, 8330, 8361, 8362, 8381, 8382, 8520, 8530, 8541

-----kode------------------------------------------------------
<script language="JavaScript" type="text/JavaScript">
<!--
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)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\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+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>

<form action="<%=MM_editAction%>" method="POST" name="form1" onSubmit="MM_validateForm('Kmodtagernavn','','R','Kmodtageradresse','','R','Kmodtagerpostnr','','NinRange8000:8350','Kmodtagerby','','R','input1','','R');return document.MM_returnValue">
Avatar billede roenving Novice
01. juni 2004 - 22:42 #1
//De andre funktioner skal ikke ændres ...
var pn = "8000, 8100, 8200, 8210, 8220, 8230, 8240, 8250, 8260, 8270, 8310, 8320, 8330, 8361, 8362, 8381, 8382, 8520, 8530, 8541,"

function checkPostnumre(f){
  return (pn.indexOf(f.Kmodtagerpostnr.value+",")>-1)?true:false;
}
//-->
</script>

<form action="<%=MM_editAction%>" method="POST" name="form1" onSubmit="MM_validateForm('Kmodtagernavn','','R','Kmodtageradresse','','R','Kmodtagerby','','R','input1','','R');return document.MM_returnValue&&checkPostnumre(this)">
Avatar billede knudx Nybegynder
02. juni 2004 - 00:39 #2
der skal også lige komme en kommentar:

ekstra funktion i script-afsnit:
<script>
function kom_med_kommentar() {
//kom med en kommentar, feks.:
return confirm ("Du er vel godt klar over at folk som bor i århus har det sjovere end andre?");
//confirm returnerer 'false' hvis bruger trykker CANCEL, og så bliver formen ikke sendt
}
</script>

ekstra funktionskald i onsubmit:

<form action="<%=MM_editAction%>" method="POST" name="form1" onSubmit="MM_validateForm('Kmodtagernavn','','R','Kmodtageradresse','','R', 'Kmodtagerby','','R','input1','','R'); return document.MM_returnValue&&(checkPostnumre(this)||kom_med_kommentar())">

så skal man enten selv være jyde, eller også acceptere udsagnet (om jydernes højere livskvalitet) for at submitte til sitet...
Godnat
Avatar billede andersasp Nybegynder
02. juni 2004 - 12:21 #3
tak for hjælpen begge to! :)
Avatar billede roenving Novice
02. juni 2004 - 12:41 #4
Velbekomme '-)
Avatar billede roenving Novice
02. juni 2004 - 13:51 #5
-- og tak for point ;~}
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

IT-JOB

Rambøll Management Consulting

Senior AI Engineer

KMD A/S

Projektleder

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen