Avatar billede zenorph Nybegynder
15. februar 2011 - 23:07 Der er 3 kommentarer og
1 løsning

Problem med formular

Har dannet dette, men det virker kort og godt ikke, og validere på ingen måder.
Så søger hjælp så den bliver rigtig :-)


<script type="text/javascript">
function valider(f){
  var url = "?subject="+escape('Bestilling pr. mail')+"&body=BESTILLING%0A%0D%0A%0D";
 
  if(6>f.afsender.value.length){
    alert('Du skal angive navn på afsender');
    f.afsender.select();
    f.afsender.focus();
    return false;
  }
 
  url += "Afsender:"+escape(" "+f.afsender.value)+"%0A%0D";
 
  if(6>f.adresse.value.length){
    alert('Du skal angive adresse på afsender');
    f.adresse.select();
    f.adresse.focus();
    return false;
  }
 
  url += "Adresse:"+escape(" "+f.adresse.value)+"%0A%0D";
 
    if(4f.postnummer.value.match(/^\d{4}$/)){
    alert('Du skal angive postnummer');
    f.postnummer.select();
    f.postnummer.focus();
    return false;
  }
 
  url += "Postnummer:"+escape(" "+f.postnummer.value)+"%0A%0D";

  if(2>f.by.value.length){
    alert('Du skal angive by');
    f.by.select();
    f.by.focus();
    return false;
  }
 
  url += "By:"+escape(" "+f.by.value)+"%0A%0D";
 
  if(8>f.telefon.value.length){
    alert('Du skal angive et telefonnummer');
    f.telefon.select();
    f.telefon.focus();
    return false;
  }
 
  url += "Telefon:"+escape(" "+f.telefon.value)+"%0A%0D";
 
  }
 
  if(f.eMail.value.length>5){
    url += "E-mail:"+escape(" "+f.eMail.value)+"%0A%0D";
  }
 
  maal = f.maalgruppe,maalgr="";
  for(i=0;maal.length>i;i++)if(maal[i].checked)maalgr += ((maalgr.length>1)?", ":"")+maal[i].value;
 
  if(4>maalgr.length){
    alert('Du skal angive en eller flere ønsker');
    f.maalgruppe[0].focus();
    return false;
  }
 
  url += "Målgruppe:"+escape(" "+maalgr)+"%0A%0D";

  }
 
  if(f.kommentar.value.length>0){
    url += "Kommentar:"+escape(" "+f.kommentar.value)+"%0A%0D";
  }
 
  f.action += url;
  return true;
}
</script>
<form name="Bestilling_revolt" method="post" action="mailto:lasse@lrq.dk" onsubmit="return valider(this)">

<table cellspacing="20" width="650">

<tr>
      <td>
<FORM NAME="Bestilling_revolt" METHOD="POST" ACTION="mailto:lasse@lrq.dk">
      <font face="tahoma" size="1"><b>

<strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
Firmanavn:<br> <input type=TEXT name="afsender" size="25"><br>

<strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
Adresse:<br> <input type=TEXT name="adresse" size="25"><br>

<strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
Postnummer & by:

<br>
<input type=TEXT name="postnummer" size="4"><br>

<input type=TEXT name="by" size="17">

<br>
<strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
Telefon:<br> <input type=TEXT name="telefon" size="25"><br>

E-mail:<br> <input type=TEXT name="eMail" size="25"><br>

<br>

<input type="checkbox" name="maalgruppe" value="E-mail fakturering (PDF)">&nbsp;E-mail fakturering (PDF)<br>
<input type="checkbox" name="maalgruppe" value="Tilbudsavis">&nbsp;Tilbudsavis år<br>
<input type="checkbox" name="maalgruppe" value="Nyhedsmail">&nbsp;Nyhedsmail<br>
<input type="checkbox" name="maalgruppe" value="Andet">&nbsp;Andet<br>

<br>
     
     
      </td>
              <td>
              <font face="tahoma" size="1"><b>
                           
Kommentar:<br>
<textarea name="kommentar" rows="2" cols="20">
</textarea>
     
<br>

<p align="justify">
<strong><font face="Tahoma" color="#ff0000" size="1">*</font></strong>
Bemærk! <br>
Alle punkter mærket med en rød stjerne, skal udfyldes!
    </p> 

<input type="Submit" value="Send">
<input type="Reset" value="Slet">
16. februar 2011 - 14:32 #1
Det kodeafsnit du viser har et antal syntaksproblemer - jeg spottede i farten:

Der er flere kroellede parantes slut end parantes begynd.  Efter url += Telefon og url += maalgruppe er der en } som ikke synes at passe ind i sammenhaengen.

Og saa mangler afslutningstaggen paa html formularen.  Det skyldes maaske at du ikke fik hele koden med.

Jeg vil foreslaa at du i foerste omgang faar paranteserne til at passe og faar afsluttet formularen og saa proeve igen og fortael hvad der sker.
16. februar 2011 - 14:51 #2
...og du har en form tag indeni en formtag, ingen af dem afsluttede saa vidt jeg kan se.

<form name="Bestilling_revolt" method="post" action="mailto:lasse@lrq.dk" onsubmit="return valider(this)">

<table cellspacing="20" width="650">

<tr>
      <td>
<FORM NAME="Bestilling_revolt" METHOD="POST" ACTION="mailto:lasse@lrq.dk">
      <font face="tahoma" size="1"><b>

........
16. februar 2011 - 17:23 #3
Jeg var udenbys - jeg sad og legede med koden i toget paa vejen hjem.  Jeg strippede al formatteringen vaek for at goere det simplere at overskue, jeg fjernede den dobbelte form start tag og indfoerte en form slut tag, jeg fjernede de ekstra }, jeg rettede  if(4f.postnummer.value.match(/^\d{4}$/)) til if(4>f.postnummer.value....., og saa indsatte jeg det i en test site http://christianjorgensen.be/zenorph.php som du er velkommen til at afproeve.  Nu validerer den, giver alerts hvis de forskellige felter ikke er fyldt ind, og da formen va validated kunne jeg sende indholdet i en email til mig selv (jeg havde for test brugt min egen emailadresse i koden, den har jeg nu fjernet.)

Saa det er da i hvert fald et skridt fremad, selv om der nok er mere at lave ved det projekt.

Her er din overnstaaende kode rettet til som sagt:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>zenorph</title>
<script type="text/javascript">
function valider(f)
{
  var url = "?subject="+escape('Bestilling pr. mail')+"&body=BESTILLING%0A%0D%0A%0D";

  if(6>f.afsender.value.length)
  {
    alert('Du skal angive navn på afsender');
    f.afsender.select();
    f.afsender.focus();
    return false;
  }

  url += "Afsender:"+escape(" "+f.afsender.value)+"%0A%0D";

  if(6>f.adresse.value.length)
  {
    alert('Du skal angive adresse på afsender');
    f.adresse.select();
    f.adresse.focus();
    return false;
  }

  url += "Adresse:"+escape(" "+f.adresse.value)+"%0A%0D";

  if(4>f.postnummer.value.match(/^\d{4}$/))
  {
    alert('Du skal angive postnummer');
    f.postnummer.select();
    f.postnummer.focus();
    return false;
  }

  url += "Postnummer:"+escape(" "+f.postnummer.value)+"%0A%0D";

  if(2>f.by.value.length)
  {
    alert('Du skal angive by');
    f.by.select();
    f.by.focus();
    return false;
  }

  url += "By:"+escape(" "+f.by.value)+"%0A%0D";

  if(8>f.telefon.value.length)
  {
    alert('Du skal angive et telefonnummer');
    f.telefon.select();
    f.telefon.focus();
    return false;
  }

  url += "Telefon:"+escape(" "+f.telefon.value)+"%0A%0D";

  if(f.eMail.value.length>5)
  {
    url += "E-mail:"+escape(" "+f.eMail.value)+"%0A%0D";
  }

  maal = f.maalgruppe;
  maalgr="";
  for(i=0; maal.length>i; i++) if(maal[i].checked) maalgr += ((maalgr.length>1)?", " : "") + maal[i].value;

  if(4>maalgr.length)
  {
    alert('Du skal angive en eller flere ønsker');
    f.maalgruppe[0].focus();
    return false;
  }

  url += "Målgruppe:"+escape(" "+maalgr)+"%0A%0D";
  if(f.kommentar.value.length>0)
  {
    url += "Kommentar:"+escape(" "+f.kommentar.value)+"%0A%0D";
  }

  f.action += url;
  return true;
}
</script>
</head>
<body>
<form name="Bestilling_revolt" method="post" action="mailto:XXXXXXXXX" onsubmit="return valider(this)">
<table cellspacing="20" width="650">
  <tr>
    <td>
      Firmanavn:<br><input type=TEXT name="afsender" size="25"><br>
      Adresse:<br> <input type=TEXT name="adresse" size="25"><br>
      Postnummer & by:<br><input type=TEXT name="postnummer" size="4"><br>
      <input type=TEXT name="by" size="17"><br>
      Telefon:<br> <input type=TEXT name="telefon" size="25"><br>
      E-mail:<br> <input type=TEXT name="eMail" size="25"><br><br>
      <input type="checkbox" name="maalgruppe" value="E-mail fakturering (PDF)"> E-mail fakturering (PDF)<br>
      <input type="checkbox" name="maalgruppe" value="Tilbudsavis"> Tilbudsavis år<br>
      <input type="checkbox" name="maalgruppe" value="Nyhedsmail"> Nyhedsmail<br>
      <input type="checkbox" name="maalgruppe" value="Andet"> Andet<br><br>
    </td>
    <td>
      Kommentar:<br><textarea name="kommentar" rows="2" cols="20">
Avatar billede zenorph Nybegynder
17. februar 2011 - 07:33 #4
Det virker helt super, så jeg takker...

Opretter dog lige en anden tråd, da jeg nok er nødt til at få det til at fungere på en anden måde :-)

Men der er du meget velkommen til at holde øje :-)
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

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