---
title: "Hjälp med form kontroll."
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/116946-hjälp-med-form-kontroll"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "ConnyFox"
published: "2004-11-29T08:13:23.000Z"
updated: "2005-03-22T17:53:31.000Z"
replies: 12
views: 637
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/116946-hjälp-med-form-kontroll"
---

# Hjälp med form kontroll.

## #1 — ConnyFox, 2004-11-29T08:13Z

har sökt i forumet men inte hittat något som jag fått att fungera bra så nu ber jag er istället.

jag har ett formulär add_kund där jag vill kontrollera så att 2st vanliga textfält inte är tomma, att ett fält bara innehåller siffror samt att ett fält innehåller ett @ (för att kontrollera giltlig email.

Om det är möjligt så skulle jag även vilja ha en koll så att ett fält är ett giltligt personnr. Någon som sitter på något liknande och har lust att modifiera lite så det fungerar för mig?

kan inte javascript överhuvudtaget.

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

## #2 — Peter S, 2004-11-29T09:50Z

Med hjälp av Jojoxx personnummerkontroll i skriptavdelningen, slängde jag ihop följande:

```
// Object 'personnummer' by member Jojoxx ([url]www.jojoxx.net[/url]) at webForum.nu

function personnummer(nr){
	this.valid=false;
	if(!nr.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})$/)){ return false; }
	this.now=new Date(); this.nowFullYear=this.now.getFullYear()+""; this.nowCentury=this.nowFullYear.substring(0,2); this.nowShortYear=this.nowFullYear.substring(2,4);
	this.year=RegExp.$1; this.month=RegExp.$2; this.day=RegExp.$3; this.controldigits=RegExp.$4;
	this.fullYear=(this.year*1<=this.nowShortYear*1)?(this.nowCentury+this.year)*1:((this.nowCentury*1-1)+this.year)*1;
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(this.fullYear%400==0||this.fullYear%4==0&&this.fullYear%100!=0){ months[1]=29; }
	if(this.month*1>12||this.day*1>months[this.month*1-1]){ return false; }
	this.alldigits=this.year+this.month+this.day+this.controldigits;
	var nn="";
	for(var n=0;n<this.alldigits.length;n++){ nn+=((((n+1)%2)+1)*this.alldigits.substring(n,n+1)); }
	this.checksum=0;
	for(var n=0;n<nn.length;n++){ this.checksum+=nn.substring(n,n+1)*1; }
	this.valid=(this.checksum%10==0)?true:false;
	this.sex=parseInt(this.controldigits.substring(2,3))%2;
}

function validate(obj){
    return (
	Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("E-postadress innehåller ej '@'"))  && 
	Boolean(/^\d+$/.test(obj.elements["siffror"].value) || alert("Endast siffror")) && 
	Boolean(new personnummer(obj.elements["pnr"].value).valid || alert("Ej giltigt personnummer"))
    );
}

<form onsubmit="return validate(this)">
    <input type="text" name="email">
    <input type="text" name="siffror">
    <input type="text" name="pnr">
</form>
```

 :)

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

## #3 — ConnyFox, 2004-11-29T14:08Z

Fungerar perfekt men jag skulle behöva lägga till koll av vanliga textfält med så dom inte är tomma.

Tack på förhand!

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

## #4 — Peter S, 2004-11-29T14:12Z

Ok, två frågor: Vad har dessa element för namn? Skall de endast kontrolleras så att de ej är tomma?

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

## #5 — ConnyFox, 2004-11-30T18:04Z

Fälten heter fornamn och efternamn och skall abra kollas så man fyllt i något i dom ja :D

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

## #6 — Peter S, 2004-11-30T19:36Z

```
function validate(obj){
    return (
	Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("E-postadress innehåller ej '@'"))  && 
	Boolean(/^\d+$/.test(obj.elements["siffror"].value) || alert("Endast siffror")) && 
	Boolean(new personnummer(obj.elements["pnr"].value).valid || alert("Ej giltigt personnummer")) && 
        Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
        Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) 
    );
}
```

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

## #7 — ConnyFox, 2004-12-07T01:12Z

oook har ett önskemål till den skall säga till om man inte fyllt i något utav fälten telehem och telemob. båda behöver altså inte vara ifyllda men minst 1 utav dom

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

## #8 — Peter S, 2004-12-07T17:08Z

```
function validate(obj){
    return (
	Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("E-postadress innehåller ej '@'"))  && 
	Boolean(/^\d+$/.test(obj.elements["siffror"].value) || alert("Endast siffror")) && 
	Boolean(new personnummer(obj.elements["pnr"].value).valid || alert("Ej giltigt personnummer")) && 
        Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
        Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) && 
	Boolean((obj.elements["telehem"].value != "" || obj.elements["telemob"].value != "") || alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
    );
}
```

Om du vill ha en simpel giltighetskontroll på dessa fält kan du använda:

```
function validate(obj){
    return (
	Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("E-postadress innehåller ej '@'"))  && 
	Boolean(/^\d+$/.test(obj.elements["siffror"].value) || alert("Endast siffror")) && 
	Boolean(new personnummer(obj.elements["pnr"].value).valid || alert("Ej giltigt personnummer")) && 
        Boolean(obj.elements["fornamn"].value != "" || alert("Inget förnamn ifyllt!")) &&
        Boolean(obj.elements["efternamn"].value != "" || alert("Inget efternamn ifyllt!")) && 
	Boolean(
	    (/\d{2,4}(\s|-|\\)?(\d\s*){5,8}/.test(obj.elements["telehem"].value) || 
	    /\d{3}(\s|-|\\)?(\d\s*){7}/.test(obj.elements["telemob"].value)) || 
	    alert("Vänligen ange åtminstone ett giltigt telefonnummer"))
    );
}
```

 :)

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

## #9 — ConnyFox, 2004-12-31T14:06Z

ok kommer med ett tillägg till här hehe skulle vilja ha en kontroll så att ett fält innehåller minst 5 tecken men max 500 :D

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

## #10 — ConnyFox, 2005-02-22T11:58Z

Fick aldrig svar på den ovanstående med max 500 tecken och minst 5 tecken.
Och nu så behöver jag dessutom en förbättring för denna

```
Boolean(obj.elements["email"].value.indexOf('@') != -1 || alert("E-postadress innehåller ej '@'"))  &&
```

Den var ju inte så säker på o kolla giltliga emailadresser hehe.

så går det o göra en som kollar att emailadressen ej innehåller ogiltliga tecken samt att den håller rätt format?
dvs x@x.x

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

## #11 — ConnyFox, 2005-02-24T19:49Z

Ingen som kan hjälpa mig med detta?

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

## #12 — J.N., 2005-02-25T09:20Z

HEJ!

Lite wf:ande gav <http://www.webforum.nu/showthread.php?s=&postid=420304#post420304>

Jag använder denna, med kända brister. Det finns en uppsjö på nätet, det är bara att välja vilken man önskar!

```
//Godkänner [email]kent.j.nilsson@m.xx.se[/email], även [email]k@m.se[/email] och [email]-@-.se[/email]
em_val = /^[a-z0-9_-]+(\.[a-z0-9_-]{1,})*@[a-z0-9_-]{1,}(\.[a-z0-9_-]{2,})*(\.[a-z]{2,4})$/i;
if (em_val.test(form.ep.value) == false){
	alert("Fubbick")
	form.ep.focus();
	return (false);
}
```

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

## #13 — ConnyFox, 2005-03-22T17:53Z

ok men hur får jag in den i min kod, vad behöver jag ändra m.m? kan inte javascript som sagt.

behöver dessutom en koll som ser till att ett fält innehåller minst 5 tecken och max 100.

Samt en kontroll att fält1 och fält2 är identiska. någon som kan?

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/116946-hjälp-med-form-kontroll
