Avatar billede hansen Nybegynder
05. februar 2002 - 15:50 Der er 1 kommentar og
1 løsning

Rette i valideringsregel

Er der en der kan gennemskue dette stykke kode genereret i UltraDev, det der skal ske, er at brugeren skal "krydse" af i en Checkbox før bruger kan submitte formularen.

Den stump jeg gerne vil have ind er denne:
-------------------------------------------

if (!theform.accept.checked) {
        alert("For at kunne gå videre mangler vi deres accept");
        theform.betingelser.focus();
        return false;
}

Koden som skal ændres med ovenstående eks. taget fra UltraDev:
-------------------------------------------
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.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);
  if(!x && document.getElementById) x=document.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') {
        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 (val<min || max<val) 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>
Avatar billede jakoba Nybegynder
05. februar 2002 - 16:38 #1
Jeg har heller aldrig fattet hvorfor Dreamweawer absolut vil generere sådan noget klumret kode.
Her er en mulighed:

<script language="JavaScript"> <!--

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

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='';
  var args=MM_validateForm.arguments;
  val = MM_findobj( 'accept' );
  if ( !val || !val.checked) {
        alert("For at kunne gå videre mangler vi deres accept");
        val = MM_findobj( 'betingelser' );
        val.focus();
        return false;
      }
  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') {
          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 (val<min || max<val) 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>

mvh JakobA
Avatar billede jakoba Nybegynder
05. februar 2002 - 16:41 #2
Næe vi skal nok også have sat  MM_returnvalue til false.
Ny linie foran return fals så det bliver:

  if ( !val || !val.checked) {
        alert("For at kunne gå videre mangler vi deres accept");
        val = MM_findobj( 'betingelser' );
        val.focus();
        document.MM_returnValue = false;
        return false;
      }
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