Avatar billede telekaedenorg Nybegynder
23. april 2004 - 14:09 Der er 8 kommentarer

Validering af felter (formvalidering)

Har lavet et længere javascript til at tjekke nogle felter. (FORMVALIDERING) Problemet er så flg. at når jeg klikker på min knap så skal den validere dokumentet, og såfremt det er valideret så printe det.

Er der nogen der kender løsningen til dette.

Her er min knap:
<input type="submit" value="Print Fuldmagt" class="print" onfocus="valideringP();return false;" onClick="valideringP();return false;">
Avatar billede telekaedenorg Nybegynder
23. april 2004 - 14:11 #1
Her er i øvrigt mit Javascript



--------------------------------------------------
<script>



//post nr tjek af alm kunde
hastabbed = false;
    function post()
    {var post = document.fuldmagt.postnr.value;var pnr = document.fuldmagt.postnr.value ;for (var i = 0; i < pnr.length; i++)
        {if (!parseInt(post.charAt(i)+1) || post.indexOf("-") > 0 || post.indexOf(" ") > 0 || pnr.length != 4)
            {alert("Post NR skal være 4 cifre!");document.fuldmagt.postnr.focus();document.fuldmagt.postnr.value="";return;

            }
        }
    if (pnr.length < 4)
        {hastabbed = false;
        }
    if (pnr.length == 4 && !hastabbed)
        {hastabbed = true;return;
        }
    }

//Postnr tjek af firma postnr
hastabbed2 = false;

    function postf()
    {var post = document.fuldmagt.fpostnr.value;var pnr = document.fuldmagt.fpostnr.value ;for (var i = 0; i < pnr.length; i++)
        {if (!parseInt(post.charAt(i)+1) || post.indexOf("-") > 0 || post.indexOf(" ") > 0 || pnr.length != 4)
            {alert("Post NR skal være 4 cifre!");document.fuldmagt.fpostnr.focus();document.fuldmagt.fpostnr.value="";return;

            }
        }
    if (pnr.length < 4)
        {hastabbed = false;
        }
    if (pnr.length == 4 && !hastabbed)
        {hastabbed = true;return;
        }
    }

//postnr tjek af bruger postnr
hastabbed3 = false;

    function postb()
    {var post = document.fuldmagt.bpostnr.value;var pnr = document.fuldmagt.bpostnr.value ;for (var i = 0; i < pnr.length; i++)
        {if (!parseInt(post.charAt(i)+1) || post.indexOf("-") > 0 || post.indexOf(" ") > 0 || pnr.length != 4)
            {alert("Post NR skal være 4 cifre!");document.fuldmagt.bpostnr.focus();document.fuldmagt.bpostnr.value="";return;

            }
        }
    if (pnr.length < 4)
        {hastabbed = false;
        }
    if (pnr.length == 4 && !hastabbed)
        {hastabbed = true;return;
        }
    }


// cpr nummer tjek med modulus 11
function cprTjeck(frm){
    var cpr = document.fuldmagt.cprnr.value
    if(cpr.match(/[0-9]{6}\-[0-9]{4}/)){
        cpr = cpr.replace(/\-/g,"");
        var chk = 0;
        for(i=9;i>-1;i--){
          chk += (+cpr.charAt(i))*((i>2)?(10-i):(4-i));
        }
        if(chk%11==0)return true;
        }
    alert("Cpr nummeret er ikke udfyldt korrekt - skal udfyldes således ddmmåå-XXXX");document.fuldmagt.cprnr.focus();
    return false;
    }
   
// validering af tlf nr
function tlfnr()
    {var tlf = document.fuldmagt.tlf.value;var tnr = document.fuldmagt.tlf.value ;for (var i = 0; i < tnr.length; i++)
        {if (!parseInt(tlf.charAt(i)+1) || tlf.indexOf("-") > 0 || tlf.indexOf(" ") > 0 || tnr.length != 8)
            {alert("Telefon numret skal bestå af 8 cifre!");document.fuldmagt.tlf.focus();document.fuldmagt.tlf.value="";return;

            }
        }
    if (tnr.length < 8)
        {hastabbed = false;
        }
    if (tnr.length == 8 && !hastabbed)
        {hastabbed = true;return;
        }
    }
// validering af CVR nr
function cvrnr()
    {var cvr = document.fuldmagt.cvr.value;var tnr = document.fuldmagt.cvr.value ;for (var i = 0; i < tnr.length; i++)
        {if (!parseInt(cvr.charAt(i)+1) || cvr.indexOf("-") > 0 || cvr.indexOf(" ") > 0 || tnr.length != 8)
            {alert("Telefon numret skal bestå af 8 cifre!");document.fuldmagt.cvr.focus();document.fuldmagt.cvr.value="";return;

            }
        }
    if (tnr.length < 8)
        {hastabbed = false;
        }
    if (tnr.length == 8 && !hastabbed)
        {hastabbed = true;return;
        }
    }
   
    //Validering af * felter i formen formen til knap Send E-mail
   
    function valideringE() {
    var valid    = true;
  var errors  = new Array();
  var names    = new Array('cprnr','navn','adresse','postnr','by','mail','idnr');
  var captions = new Array('CPR-Nummer','Fulde navn','Adresse','Post Nr.','By','Email','Legimitationsnummer');
  for (index in names) {
    var name    = names[index];
    var element  = fuldmagt.elements[name];
    var error    = true;
    var errormsg = 'Elementet er ikke udfyldt';
   
    switch (name) {
    case 'cprnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }

    break;
    case 'navn':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }

    break;
    case 'adresse':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'postnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'by':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'mail':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'idnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    }
   
    if (error) {
    valid = false;
    errors[name] = captions[index] + ' ' + errormsg;
    }
  }
 
  if (!valid) {
    errorstr = 'Følgende felter SKAL udfyldes:\n'
    for (index in errors) {
      errorstr += '- ' +  errors[index] + '\n';
    }
    alert(errorstr);
  }
 
  if (!error) {
  document.fuldmagt.submit();
  }
}


//Validering af * felter i formen formen til knap Print
   
    function valideringP() {
    var valid    = true;
  var errors  = new Array();
  var names    = new Array('cprnr','navn','adresse','postnr','by','mail','idnr');
  var captions = new Array('CPR-Nummer','Fulde navn','Adresse','Post Nr.','By','Email','Legimitationsnummer');
  for (index in names) {
    var name    = names[index];
    var element  = fuldmagt.elements[name];
    var error    = true;
    var errormsg = 'Elementet er ikke udfyldt';
   
    switch (name) {
    case 'cprnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }

    break;
    case 'navn':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }

    break;
    case 'adresse':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'postnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'by':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'mail':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    break;
    case 'idnr':
    error = false;
    if (element.value.length == 0) {
      error = true;
      errormsg = 'skal udfyldes';
    }
    }
   
    if (error) {
    valid = false;
    errors[name] = captions[index] + ' ' + errormsg;
    }
  }
 
  if (!valid) {
    errorstr = 'Følgende felter SKAL udfyldes:\n'
    for (index in errors) {
      errorstr += '- ' +  errors[index] + '\n';
    }
    alert(errorstr);
  }
 
  if (!error) {
  document.fuldmagt.print;
  document.fuldmagt.submit();
  }
}
</script>
Avatar billede roenving Novice
23. april 2004 - 14:16 #2
Hvad gør den da ?-)
Avatar billede telekaedenorg Nybegynder
23. april 2004 - 14:19 #3
Hvis validering er iorden, så printer den ikke.
Avatar billede roenving Novice
23. april 2004 - 14:24 #4
Det er kun window-objekter, som har en print-metode, så det er vinduet, du skal printe ...
Avatar billede telekaedenorg Nybegynder
23. april 2004 - 14:28 #5
Der er jeg ikke lige helt med.
Det jeg egentlig skal have den til er at lave 2 funktioner. i Ét hug.
Avatar billede roenving Novice
23. april 2004 - 14:31 #6
if (!error) {
  window.print();
  document.fuldmagt.submit();
  }
}
Avatar billede telekaedenorg Nybegynder
23. april 2004 - 14:33 #7
Det har jeg prøvet. Men så printer den på html siden og ikke dokument formen.
Avatar billede roenving Novice
23. april 2004 - 15:08 #8
Da der som tidligere skrevet kun findes en print-metode på window-objekter, er det også den eneste umiddelbare mulighed ...

Hvis du _kun_ vil udskrive formens indhold må du kopiere dette over i et window-objekt, f.eks. en popup eller en (skjult) iframe og så printe det derfra !-)

f.eks.

<iframe src="" name="fuldmagtPrint" style="width:0px;height:0px;border:0px;"></iframe>
<form name="fuldmagt" ...

-- og så slutte scriptet sådan:

  if (!error) {
  window.fuldmagtPrint.document.body.innerHTML = document.fuldmagt.innerHTML;
  window.fuldmagtPrint.focus();
  window.fuldmagtPrint.print();
  document.fuldmagt.submit();
  }
}
</script>

-- og det er ganske utestet !o]
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