Avatar billede crunch Nybegynder
02. september 2000 - 14:55 Der er 11 kommentarer og
1 løsning

check om felter er udfyldt ved POST formular.

hej er der nogen der kan give mig scriptet der tjkker om felter er udfyldt i en POST formular. Hvis et felt ikke er udfyldt når der klikkes på SUBMIT så skal der poppe en boks op med \"du mangler + formfelt\"..

det kunne være fedt med et eksempel. (java-script + form)

tak
Avatar billede Keld Nielsen Professor
02. september 2000 - 15:23 #1
Brug f.eks. WCmail.pl fra www.webcafe.dk hvor der er en kontrolfunktion på manglende oplysninger.
Avatar billede crunch Nybegynder
02. september 2000 - 15:30 #2
dur ikke... jeg skal bruge koden til at sætte ind i et færdigt ASP program. Det skal bare tjekke om brugeren har udfyldt felter rigtigt inden han skifter side,..
Avatar billede fætterguf Nybegynder
02. september 2000 - 16:05 #3
Denne her kan håndtere en masse forskellige typer input:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<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 mail-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 indholde 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 == \'\');
}
//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" >
<form name=\"form1\" >
  <p>felt1
    <input type=\"text\" name=\"Felt1\">
  </p>
  <p> felt2
    <input type=\"text\" name=\"Felt2\">
  </p>
  <p>felt3
    <textarea name=\"Felt3\"></textarea>
  </p>
  <p>
    <input type=\"submit\" name=\"Submit\" value=\"Submit\" onMouseDown=\"MM_validateForm(\'Felt1\',\'\',\'R\',\'Felt2\',\'\',\'RisEmail\',\'Felt3\',\'\',\'R\');return document.MM_returnValue\">
  </p>
</form>
</body>
</html>

,\'Felt2\',\'\',\'RisEmail\',..betyder f.eks at der skal være en mailadresse i Felt2
Avatar billede fætterguf Nybegynder
02. september 2000 - 16:10 #4
\'Felt2\',\'\',\'RisNum\' = skal være et tal
\'Felt2\',\'\',\'RinRange1:10\' = skal være et tal mellem 1 og 10
Avatar billede fætterguf Nybegynder
02. september 2000 - 16:14 #5
Hvis du skriver Nis foran er det ikke påkrævet, men hvis feltet indeholder en værdi checker den om det er korrekt - f.eks: \'Felt1\',\'\',\'NisEmail\'
Avatar billede erikjacobsen Ekspert
02. september 2000 - 19:09 #6
Jeg må lige advare om at bruge fættergufs script ukritisk. Det virker fint - så vidt jeg lige kan overskue - sålænge
brugeren trykker Submit-knappen, men hvis brugeren trykker på returtasten i stedet for, bliver formen *ikke*
valideret. Det kan du sikkert nemt fikse, fætterguf !
Avatar billede fætterguf Nybegynder
02. september 2000 - 20:24 #7
...nåh, det kan jo klares med en simpel onSubmit.....det er da det mindste
Avatar billede fætterguf Nybegynder
02. september 2000 - 20:26 #8
<FORM name=\"form1\" onSubmit=\"MM_validateForm(\'Felt1\',\'\',\'R\',\'Felt2\',\'\',\'RisEmail\',\'Felt3\',\'\',\'R\');return document.MM_returnValue\">
 
Avatar billede erikjacobsen Ekspert
02. september 2000 - 22:07 #9
Nemlig, hr. eller fr. guf. Sådan - og kun sådan - bør man validere en form.
Avatar billede crunch Nybegynder
03. september 2000 - 07:17 #10
- tak for svaret.

men lige et lille problem. Jeg har svært ved at præcis udrede hvad der sker hvor..
kunne jeg måske lokke dig til at ændre scriptet så det:

1) tjekker på 3 felter (som nu)
2) kun tjekker om der er skrevet noget i disse felter (lige meget hvad der står )


på forhånd tak.

Avatar billede fætterguf Nybegynder
03. september 2000 - 11:37 #11
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<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 mail-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 indholde 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 == \'\');
}
//-->
</script>
</head>

<body bgcolor=\"#FFFFFF\" >
<form name=\"form1\" onSubmit=\"MM_validateForm(\'Felt1\',\'\',\'R\',\'Felt2\',\'\',\'R\',\'Felt3\',\'\',\'R\');return document.MM_returnValue\">
  <p>felt1
    <input type=\"text\" name=\"Felt1\">
  </p>
  <p> felt2
    <input type=\"text\" name=\"Felt2\">
  </p>
  <p>felt3
    <textarea name=\"Felt3\"></textarea>
  </p>
  <p>
    <input type=\"submit\" name=\"Submit\" value=\"Submit\" >
  </p>
</form>
</body>
</html>
Avatar billede crunch Nybegynder
03. september 2000 - 11:42 #12
fedt lige hvad jeg manglede..

(:
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