Avatar billede discotk Nybegynder
07. december 2009 - 21:12 Der er 6 kommentarer og
1 løsning

Hjælp til simpel alert

Først og fremmest vil jeg gerne forenkle denne kode, dels så den bliver mindre og så den ikke kommer op med en alert for hver enkelt ting. Kom gerne med flere råd om hvordan i synes koden skal være :) på forhånd tak


<script type="text/javascript">
function valider(f){
  if(f.fornavn.value==''){
    alert('*Navn');
    f.fornavn.focus();
    return false;
  }
  function valider(f){
  if(f.emne.value==''){
    alert('*emne');
    f.emne.focus();
    return false;
  }
  if(f.efternavn.value==''){
    alert('*Efternavn');
    f.efternavn.focus();
    return false;
  }
    if(f.cpr1.value==''){
    alert('*Fødelsdagsdato');
    f.cpr1.focus();
    return false;
  }
  if(f.cpr2.value==''){
    alert('*Kontrolcifre');
    f.cpr2.focus();
    return false;
  }

  if(f.adresse.value==''){
    alert('*Adresse');
    f.adresse.focus();
    return false;
  }

  if(f.postnummer.value==''){
    alert('*Postnummer');
    f.postnummer.focus();
    return false;
  }
 
  if(f.by.value==''){
    alert('*By');
    f.By.focus();
    return false;
  }
 
    if(f.tlf.value==''){
    alert('*Telefon');
    f.tlf.focus();
    return false;
  }

    if(f.email.value==''){
    alert('*E-mail');
    f.email.focus();
    return false;
  }
  var regexp = /^\w[\w\.\-]*@\w[\w\-]*\.\w{2}/i;
  if(f.email.value!=''&&!f.email.value.match(regexp)){
    alert('*Ugyldig email');
    f.email.focus();
    return false;
  }
  return true;
}
</script>



// Her er form hvis man vil bruge den


<form method="post" action="tilmeldt.php" style="width: 238px" onsubmit="return valider(this)">

    <table width="800" cellpadding="0" cellspacing="0" style="width: 658px; height: 1px">
        <tr>
            <td colspan="4">

            <input checked="checked" name="valg" value="Uddannelse" type="radio" />Uddannelse&nbsp;<input name="valg" value="Kursus" type="radio" />Kursus</td>
        </tr>
        <tr>
            <td style="width: 101px">Navn på ønsket uddannelse/kursus<span class="style1">*</span><span class="style1"></span></td>
            <td width="227" style="width: 227px"><input name="emne" type="text" /></td>
            <td width="68" style="width: 68px">&nbsp;</td>
            <td width="362">&nbsp;</td>
        </tr>
        <tr>
            <td style="width: 101px">Fornavn<span class="style1">*</span></td>
            <td width="227" style="width: 227px"><input name="fornavn" type="text" /></td>
            <td width="68" style="width: 68px">Efternavn<span class="style1">*</span></td>
            <td width="362"><input name="efternavn" type="text" /></td>
        </tr>
        <tr>
            <td style="width: 101px">CPR nr.<span class="style1">*</span></td>
            <td style="width: 227px">
            <input name="cpr1" style="width: 77px" type="text" maxlength="6" /> - <input name="cpr2" style="width: 51px" type="text" maxlength="4" /></td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td style="width: 101px">Adresse<span class="style1">*</span></td>
            <td style="width: 227px"><input name="adresse" type="text" />&nbsp;</td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td style="width: 101px">Postnummer<span class="style1">*</span></td>
            <td style="width: 227px"><input name="postnummer" type="text" maxlength="4" />&nbsp;</td>
            <td style="width: 68px">By<span class="style1">*</span></td>
            <td><input name="by" type="text" /></td>
        </tr>
        <tr>
            <td style="width: 101px">Telefon nr.<span class="style1">*</span></td>
            <td style="width: 227px"><input name="tlf" type="text" maxlength="8" />&nbsp;</td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td style="width: 101px">E-mail<span class="style1">*</span></td>
            <td style="width: 227px"><input name="email" type="text" /></td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td style="width: 101px">Uddannelse/misbrug</td>
            <td style="width: 227px"><input name="uddannelse" type="text" /></td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td style="width: 101px">Arbejdsplads</td>
            <td style="width: 227px"><input name="arbejdsplads" type="text" /></td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
        <tr>
            <td height="22" style="width: 101px">EAN-nummer</td>
            <td style="width: 227px"><input name="EANnr" type="text" /></td>
            <td style="width: 68px"></td>
            <td></td>
        </tr>
    </table>
<input type="submit" value="Tilmeld" />
</form>
Avatar billede majbom Novice
07. december 2009 - 21:35 #1
jeg har ikke tid til at komme med et eksempel, men hvis du kan lave lidt selv, så kunne du jo smide fejlen i en streng og til sidst alerte strengen:

var error = "";

if(bla bla){
  error += "- der er fejl i 'navn'\n";
}

if(error)[
  alert(error);
}else{
  //submit form
}

...ja det blev så lidt eksempel alligevel - godnat :)
Avatar billede discotk Nybegynder
08. december 2009 - 00:43 #2
tror bare at jeg lukker :) splazz du kom med det bedste bud, smid et svar
Avatar billede mireigi Novice
08. december 2009 - 12:52 #3
function checkForm(form)
        {
            var error = "";
            var valid = true;
            for (var i = 0; i < form.elements.length; i++)
            {
                var elem = form.elements[i];
                var type = elem.type;
               
                if (type == "text")
                {
                    if (elem.name != "email")
                    {
                        if (elem.value == "")
                        {
                            valid = false;
                            error += "\t" + elem.name + " må ikke være blank.\r\n"
                        }
                    }
                    else
                    {
                        var regexp = /^\w[\w\.\-]*@\w[\w\-]*\.\w{2}/i;
                        if (elem.value != "" && !elem.value.match(regexp))
                        {
                            error += "\tEmail er forkert udfyldt.\r\n";
                        }
                    }
                }
            }
           
            error = "Følgende fejl blev fundet i formularen\r\n" + error;
            alert(error);
            return valid;
        }
Avatar billede majbom Novice
09. december 2009 - 20:07 #4
<script type="text/javascript">
function valider(f){
  var error = "";
  if(f.fornavn.value==''){
    error += "*Navn\n";
  }
  function valider(f){
  if(f.emne.value==''){
    error = "*emne\n";
  }
  if(f.efternavn.value==''){
    error = "*Efternavn\n";
  }
  if(f.cpr1.value==''){
    error = "*Fødelsdagsdato\n";
  }
  if(f.cpr2.value==''){
    error = "*Kontrolcifre\n";
  }

  if(f.adresse.value==''){
    error = "*Adresse\n";
  }

  if(f.postnummer.value==''){
    error = "*Postnummer\n";
  }

  if(f.by.value==''){
    error = "*By\n";
  }

  if(f.tlf.value==''){
    error = "*Telefon\n";
  }

  if(f.email.value==''){
    error = "*E-mail\n";
  }
  var regexp = /^\w[\w\.\-]*@\w[\w\-]*\.\w{2}/i;
  if(f.email.value!=''&&!f.email.value.match(regexp)){
    error = "*Ugyldig email\n";
  }

  if(error){
    alert("Der er fejl i følgende felter:\n\n"+error);
    return false;
  }
  return true;
}
</script>
Avatar billede discotk Nybegynder
11. december 2009 - 19:19 #5
Super :) tak... Her er den samlede løsning jeg har lavet, til andre der skulle få et problem

<script type="text/javascript"> 
function val(form)
{
    var theErrors = '';
if (form.kursusnavn.value == "")
      theErrors += "*Navn på uddannelse/kursus\n";
if (form.fornavn.value == "")
      theErrors += "*Fornavn\n";
if (form.efternavn.value == "")
      theErrors += "*Efternavn\n";
if (form.cpr1.value == "")
      theErrors += "*Fødselsdagsdato\n";
if (form.cpr2.value == "")
      theErrors += "*Kontrolcifre\n";
if (form.adresse.value == "")
      theErrors += "*Adresse\n";
if (form.postnummer.value == "")
      theErrors += "*Postnummer\n";
        else if(!form.postnummer.value.match(/^[0-9\+ ]+$/)&&form.postnummer.value!='')
      theErrors += "*Ugyldigt postnummer\n";
if (form.by.value == "")
      theErrors += "*By\n";
if (form.tlf.value == "")
      theErrors += "*Telefon nr.\n";
        else if(!form.tlf.value.match(/^[0-9\+ ]+$/)&&form.tlf.value!='')
      theErrors += "*Ugyldigt telefon nr.\n";
    var regexp = /^\w[\w\.\-]*@\w[\w\-]*\.\w{2}/i;
if (form.email.value!=''&&!form.email.value.match(regexp))
      theErrors += "*Ugyldig e-mail\n";
if (form.email.value == "")
      theErrors += "*E-mail\n";
if (form.email2.value == "")
      theErrors += "*Bekræft e-mail\n";
if (form.email2.value != form.email.value)
      theErrors += "*E-mails passer ikke sammen\n";
        else if (form.email.value != form.email2.value)
            theErrors += "*E-mails passer ikke sammen\n";
if (form.cpr1.value.length!=6)
      theErrors += "*Ugyldigt CPR nr.\n";
        else if (form.cpr2.value.length!=4)
            theErrors += "*Ugyldigt CPR nr.\n";
    var cpr = form.cpr1.value + form.cpr2.value;
if(cpr.match(/\d{6}\-?\d{4}/)){
    var aar = +cpr.substr(4,2)+2000;
    aar -= (aar>new Date().getFullYear())?100:0;
    var maaned = +cpr.substr(2,2)-1;
    var dag = +cpr.substr(0,2);
    var dato = new Date(aar,maaned,dag);
    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||dato.getFullYear()!=aar||dato.getMonth()!=maaned||dato.getDate()!=dag)
      theErrors += "*Ugyldigt CPR nr.\n";;
    }
if(theErrors){
    alert(theErrors);
    return false;
  } else {
    return true; }
}
</script>
Avatar billede majbom Novice
11. december 2009 - 20:31 #6
selv tak :)
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