---
title: "Hjälp med validering av email!!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/189179-hjälp-med-validering-av-email"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Rosenkvist"
published: "2012-02-22T15:10:59.000Z"
updated: "2012-02-23T15:13:32.000Z"
replies: 19
views: 1411
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/189179-hjälp-med-validering-av-email"
---

# Hjälp med validering av email!!

## #1 — Rosenkvist, 2012-02-22T15:10Z

Hej
Kan någon snäll kolla över min kod och se vad jag gör för fel!! Mitt problem är att jag inte kan validera fältet **e-mail** så att det görs kontroll på om mailadressen är korrekt angiven.

Här är min kod:

```
<script language="JavaScript" type="text/javascript">
 
<!--

   function kollabokstaver (str)
    {
      var index;
      str = str.toLowerCase ();
      for (index = 0; index < str.length; ++index)
        if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf
            (str.substring (index, index + 1)) == -1)
          return false;
 
      return true;
    }
 
    
    function kollasiffror (str)
    {
      var index;
      for (index = 0; index < str.length; ++index)
        if ('0123456789'.indexOf (str.substring
            (index, index + 1)) == -1)
          return false;
 
      return true;
    }
 
    
    function kollaformularet (form)
    {
      if (form.fornamn.value.length == 0)
        alert ('Skriv dit ditt förnamn.');
      else if (!kollabokstaver (form.fornamn.value))
        alert ('Förnamnet kan inte bara vara siffror.');
 
      else if (form.efternamn.value.length == 0)
        alert ('Skriv dit ditt efternamn.');
      else if (!kollabokstaver (form.efternamn.value))
        alert ('Efternamnet kan inte bara vara siffror.');
 
      else if (form.adress.value.length == 0)
        alert ('Skriv in en adress.');
 
      else if (form.postnummer.value.length == 0)
        alert ('Skriv dit ett postnummer.');
      else if (!kollasiffror (form.postnummer.value))
        alert ('Postnummer har inga bokstäver.');
      else if (form.postnummer.value.length != 5)
 
       alert ('Postnumret har inte fem siffror inskrivet.');
 
      else if (form.postadress.value.length == 0)
        alert ('Skriv dit en postadress.');
      else if (!kollabokstaver (form.postadress.value))
       alert ('Postadressen kan inte bara vara siffror.');
	   
       else if (form.telefon.value.length == 0)
        alert ('Skriv dit ett telefonnummer.');
      else if (!kollasiffror (form.telefon.value))
        alert ('Telefonnummer har inga bokstäver.');
		
      else
        return true;
 
      return false;
	  
	  var testresults
function checkemail(){
var str=document.validation.emailcheck.value
var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
if (filter.test(str))
testresults=true
else{
alert("Please input a valid email address!")
testresults=false
}
return (testresults)
}
    }
	//-->
  </script>
 
</head>
 

<form action ="mailto:din@email.se" method ="post" enctype="text/plain" onSubmit ="return kollaformularet (this);">

<tr> <td> F&ouml;rnamn:</td>
<td> <input type ="text" name ="fornamn"></td></tr>
<tr> <td> Efternamn:</td>
<td> <input type= "text" name = "efternamn"></td></tr><br>
<tr> <td> Adress:</td>
<td> <input type="text" name="adress"></td></tr>
<tr> <td> Postnummer:</td>
<td> <input type ="text" name ="postnummer" maxlength =5></td></tr>
<tr> <td> Postadress:</td>
<td> <input type ="text" name = "postadress"</td></tr>
<tr> <td> Telefon:</td>
<td> <input type="text" name ="telefon"</td></tr>

<td> <td>E-mail:</td>
<td> <input type="text" size=18 name="emailcheck"</td></tr>

<tr valign=top> <td> Best&auml;ll:</td>
<td> <textarea name = "bestall" rows=10 cols =17></textarea></td></tr>
<tr><td>&#160;</td>
<td><input type ="submit" value = "S&auml;nd">
<input type ="reset" value = "Radera"></td></tr>
</table>
</form>
</body>
```

Permalänk: https://www.webforum.nu/p/189179

## #2 — b242569, 2012-02-22T18:05Z

Jag tror att det ska vara en } före

var testresults
function checkemail(){

Upptäckte även att det under return (testresults) är två rader med }. Jag tror alltså att den ena ska flyttas högre upp eller ska funktionen checkemail vara inne i funktionen kollaformularet? En funktion ska väl avsluta med en return-sats?

Kanske att det även ska vara return testresults (utan parenteser).

Permalänk: https://www.webforum.nu/p/2296162

## #3 — Palle, 2012-02-22T20:19Z

Flyttar tråden från **Script - JavaScript, DHTML**.

Permalänk: https://www.webforum.nu/p/2296165

## #4 — Palle, 2012-02-22T20:45Z

Strukturerade upp koden lite för bättre läsbarhet, och som b242569 säger har du nog råkat kasta om lite tecken på några ställen.

Hur fungerar denna koden för dig?

```
<script type="text/javascript">

function kollabokstaver(str){
	var index;
	str = str.toLowerCase ();
	for (index = 0; index < str.length; ++index){
		if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf(str.substring (index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollasiffror(str){
	var index;
	for (index = 0; index < str.length; ++index){
		if ('0123456789'.indexOf (str.substring(index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollaformularet(form){
	if (form.fornamn.value.length == 0){
		alert('Skriv dit ditt förnamn.');
	} else if (!kollabokstaver(form.fornamn.value)){
		alert('Förnamnet kan inte bara vara siffror.');
	} else if (form.efternamn.value.length == 0){
		alert('Skriv dit ditt efternamn.');
	} else if (!kollabokstaver(form.efternamn.value)){
		alert('Efternamnet kan inte bara vara siffror.');
	} else if (form.adress.value.length == 0){
		alert('Skriv in en adress.');
	} else if (form.postnummer.value.length == 0){
		alert('Skriv dit ett postnummer.');
	} else if (!kollasiffror (form.postnummer.value)){
		alert('Postnummer har inga bokstäver.');
	} else if (form.postnummer.value.length != 5){
		alert('Postnumret har inte fem siffror inskrivet.');
	} else if (form.postadress.value.length == 0){
		alert('Skriv dit en postadress.');
	} else if (!kollabokstaver(form.postadress.value)){
		alert('Postadressen kan inte bara vara siffror.');
	} else if (form.telefon.value.length == 0){
		alert('Skriv dit ett telefonnummer.');
	} else if (!kollasiffror (form.telefon.value)){
		alert('Telefonnummer har inga bokstäver.');
	} else{
		return true;
	}
	return false;
}

function checkemail(){
	var testresults,
		str=document.validation.emailcheck.value,
		filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)){
		testresults=true;
	}else{
		alert("Please input a valid email address!");
		testresults=false;
	}
	return testresults;
}

</script>
```

Permalänk: https://www.webforum.nu/p/2296166

## #5 — Rosenkvist, 2012-02-23T07:41Z

Fortfarande fel...

Tack för er hjälp..men det blir en massa fel då jag lägger til kod så det blir såhär:

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta name="description" content="description"/>
<meta name="keywords" content="keywords"/> 
<meta name="author" content="author"/> 
<link rel="stylesheet" type="text/css" href="default.css" />

<!--[if IE]>
   <link rel="stylesheet" type="text/css" href="stilmallie.css" />
<![endif]-->
<link rel="stylesheet" type="text/css" href="css/style_print.css" media="print" />

<title>Johannas Portfolio</title>
</head>

<body>
<script type="text/javascript">

function kollabokstaver(str){
	var index;
	str = str.toLowerCase ();
	for (index = 0; index < str.length; ++index){
		if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf(str.substring (index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollasiffror(str){
	var index;
	for (index = 0; index < str.length; ++index){
		if ('0123456789'.indexOf (str.substring(index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollaformularet(form){
	if (form.fornamn.value.length == 0){
		alert('Skriv dit ditt förnamn.');
	} else if (!kollabokstaver(form.fornamn.value)){
		alert('Förnamnet kan inte bara vara siffror.');
	} else if (form.efternamn.value.length == 0){
		alert('Skriv dit ditt efternamn.');
	} else if (!kollabokstaver(form.efternamn.value)){
		alert('Efternamnet kan inte bara vara siffror.');
	} else if (form.adress.value.length == 0){
		alert('Skriv in en adress.');
	} else if (form.postnummer.value.length == 0){
		alert('Skriv dit ett postnummer.');
	} else if (!kollasiffror (form.postnummer.value)){
		alert('Postnummer har inga bokstäver.');
	} else if (form.postnummer.value.length != 5){
		alert('Postnumret har inte fem siffror inskrivet.');
	} else if (form.postadress.value.length == 0){
		alert('Skriv dit en postadress.');
	} else if (!kollabokstaver(form.postadress.value)){
		alert('Postadressen kan inte bara vara siffror.');
	} else if (form.telefon.value.length == 0){
		alert('Skriv dit ett telefonnummer.');
	} else if (!kollasiffror (form.telefon.value)){
		alert('Telefonnummer har inga bokstäver.');
	} else{
		return true;
	}
	return false;
}

function checkemail(){
	var testresults,
		str=document.validation.emailcheck.value,
		filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)){
		testresults=true;
	}else{
		alert("Please input a valid email address!");
		testresults=false;
	}
	return testresults;
}

</script>

</head>

<form action ="mailto:din@email.se" method ="post" enctype="text/plain" onSubmit ="return kollaformularet (this);">

<td> F&ouml;rnamn:</td>
<td> <input type ="text" name ="fornamn"></td>
 <td> Efternamn:</td>
<td> <input type= "text" name = "efternamn"></td><br>
 <td> Adress:</td>
<td> <input type="text" name="adress"></td>
 <td> Postnummer:</td>
<td> <input type ="text" name ="postnummer" maxlength =5></td>
 <td> Postadress:</td>
<td> <input type ="text" name = "postadress"</td>
 <td> Telefon:</td>
<td> <input type="text" name ="telefon"</td>

<td> <td>E-mail:</td>
<td> <input type="text" size=18 name="emailcheck"</td>

<tr valign=top> <td> Best&auml;ll:</td>
<td> <textarea name = "bestall" rows=10 cols =17></textarea></td>
<tr><td>&#160;</td>
<td><input type ="submit" value = "S&auml;nd">
<input type ="reset" value = "Radera"></td>

</form>
</body>

</html>
```

Permalänk: https://www.webforum.nu/p/2296174

## #6 — voigtann1, 2012-02-23T07:45Z

document.validation.emailcheck.value

du har inget formulär som har det namnet + du anropar ju aldrig metoden **checkemail**

Du kan ju också skriva om metoden checkemail så den följer resten av din kod:

```
<script type="text/javascript">

function checkemail(value){
	var testresults,
		filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	return filter.test(value);
}

function kollabokstaver(str){
	var index;
	str = str.toLowerCase ();
	for (index = 0; index < str.length; ++index){
		if ('abcdefghijklmnopqrstuvwxyzåäö'.indexOf(str.substring (index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollasiffror(str){
	var index;
	for (index = 0; index < str.length; ++index){
		if ('0123456789'.indexOf (str.substring(index, index + 1)) == -1){
			return false;
		}
	}
	return true;
}

function kollaformularet(form){
	if (form.fornamn.value.length == 0){
		alert('Skriv dit ditt förnamn.');
	} else if (!kollabokstaver(form.fornamn.value)){
		alert('Förnamnet kan inte bara vara siffror.');
	} else if (form.efternamn.value.length == 0){
		alert('Skriv dit ditt efternamn.');
	} else if (!kollabokstaver(form.efternamn.value)){
		alert('Efternamnet kan inte bara vara siffror.');
	} else if (form.adress.value.length == 0){
		alert('Skriv in en adress.');
	} else if (form.postnummer.value.length == 0){
		alert('Skriv dit ett postnummer.');
	} else if (!kollasiffror (form.postnummer.value)){
		alert('Postnummer har inga bokstäver.');
	} else if (form.postnummer.value.length != 5){
		alert('Postnumret har inte fem siffror inskrivet.');
	} else if (form.postadress.value.length == 0){
		alert('Skriv dit en postadress.');
	} else if (!kollabokstaver(form.postadress.value)){
		alert('Postadressen kan inte bara vara siffror.');
	} else if (form.telefon.value.length == 0){
		alert('Skriv dit ett telefonnummer.');
	} else if (!kollasiffror (form.telefon.value)){
		alert('Telefonnummer har inga bokstäver.');
	} else if(!checkemail(form.emailcheck.value)) {
		alert('Please input a valid email address!');
	} else {
		return true;
	}
	return false;
}

</script>
```

Sen är det aldrig bra att namnge metoder eller variabler på svenska

Permalänk: https://www.webforum.nu/p/2296175

## #7 — Rosenkvist, 2012-02-23T09:30Z

Koden funkar men när jag validerar på w3c får jag 39 Errors, 5 warning(s)....

Permalänk: https://www.webforum.nu/p/2296178

## #8 — voigtann1, 2012-02-23T09:40Z

Det är ju för att din HTML kod är felaktig, du ha td och tr men du har ingen table element... Har inget med JS koden

Permalänk: https://www.webforum.nu/p/2296180

## #9 — Rosenkvist, 2012-02-23T09:43Z

suck...helt lost...och med deadline som närmar sig.... :-(

Permalänk: https://www.webforum.nu/p/2296181

## #10 — voigtann1, 2012-02-23T09:45Z

Det är ju bara att bygga upp tabellen på ett korrekt sätt, stäng elementen där dom skall vara (även om de flesta webbläsarna fixar detta åt dig oavsett). Förstå inte riktigt varför du skall ha det i en tabell i huvudtaget.

Permalänk: https://www.webforum.nu/p/2296182

## #11 — Rosenkvist, 2012-02-23T10:31Z

egentligen ska jag inte alls använda mig av tabeller...Min kod är en mischmasch av kod jag hittat på nätet...suck...Har du ngt förslag på hur jag gör UTAN tabeller?  \*\*evigt tacksam \*\*

Permalänk: https://www.webforum.nu/p/2296187

## #12 — voigtann1, 2012-02-23T10:39Z

Vad är det för deadline?

Permalänk: https://www.webforum.nu/p/2296188

## #13 — Rosenkvist, 2012-02-23T10:59Z

ett projekt där jag fått denna uppgift...tyvärr..deadline imorgon

Permalänk: https://www.webforum.nu/p/2296190

## #14 — voigtann1, 2012-02-23T12:01Z

Du kan ju börja ta bort alla element som är kopplade till en tabell (\<td\>)

Sen delar upp dina kod och radbrytningar där det kan vara. Om du ha fått uppgiften i ett projekt så borde du väl ha förkunskaper om html?

Permalänk: https://www.webforum.nu/p/2296191

## #15 — Rosenkvist, 2012-02-23T12:06Z

jo, jag har vissa förkunskaper i html, men de är inte så färska. Vi är fler som delar på uppgiften men alla har blivit sjuka så det föll på mig att slutföra..Sak samma...Jag försöker göra detta klart samtidigt som jag har två sjuka barn att ta hand om så det är därför jag ber om hjälp..Det blir lite för mycket ibland... :-(

Ska göra som du sa...tack

Permalänk: https://www.webforum.nu/p/2296192

## #16 — Rosenkvist, 2012-02-23T13:09Z

dum fråga kanske...kan jag ersätta \<td\> med \<p\>??

Permalänk: https://www.webforum.nu/p/2296193

## #17 — voigtann1, 2012-02-23T13:29Z

Ja, det skall du kunna nog, men du få plocka bort \<tr\> elementet + formatera din HTML på ett korrekt sätt, du kör xhtml då skall alla attribut vara med små bokstäver dvs onSubmit är fel det skall vara onsubmit

dina input fält skall stängas:
\<input /\> INTE \<input\>

dvs om du nu vill+måste validera din HTML kod.

Permalänk: https://www.webforum.nu/p/2296194

## #18 — Rosenkvist, 2012-02-23T14:29Z

Fattar inte var jag ska stänga \<input\>....Och ja..jag vill helst att sidan ska validera...

Koden ser ut som pannkaka...

\</script\>

\<form action ="mailto:din@email.se" method ="post" enctype="text/plain" onsubmit ="return kollaformularet (this);"\>

\<p\> F&ouml;rnamn:\</p\>
\<input type ="text" name ="fornamn"\>\<input/\>
 \<p\> Efternamn:\</p\>
\<input type= "text" name = "efternamn"\>\<input /\>\<br\>
 \<p\> Adress:\</p\>
\<input type="text" name="adress"\>\<input /\>
 \<p\> Postnummer:\</p\>
\<input type ="text" name ="postnummer" maxlength =5\>\<input /\>
 \<p\> Postadress:\</p\>
\<input type ="text" name = "postadress"\<input /\>
 \<p\> Telefon:\</p\>
\<input type="text" name ="telefon"\<input /\>

\<p\> \<td\>E-mail:\</p\>
\<input type="text" size=18 name="emailcheck"\>\<input /\>

\<p\>\<input type ="submit" value = "S&auml;nd"\>
\<input type ="reset" value = "Radera"\>\</p\>\<input /\>

\</form\>
\</body\>

\</html\>

Permalänk: https://www.webforum.nu/p/2296198

## #19 — voigtann1, 2012-02-23T14:40Z

Du stänger input element som:

```
<input type ="text" name ="fornamn">
```

skalll vara:

```
<input type ="text" name="fornamn" />
```

jag skrev \<input\> =\> \<input/\> som ett exempel för att inte behöva skriva om all din kod.

Och du har \<td\> vid e-mail sen har du två \</head\> i ditt HTML dokument, vilket är felaktigt.

Permalänk: https://www.webforum.nu/p/2296199

## #20 — Rosenkvist, 2012-02-23T15:13Z

tack så mycket för din hjälp! Ska kolla på detta under kvällen. :-)

Permalänk: https://www.webforum.nu/p/2296200

---

Tråden på webben: https://www.webforum.nu/amne/javascript/189179-hjälp-med-validering-av-email
