---
title: "Validera textrutor (XX:YY)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/76028-validera-textrutor-xx-yy"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Peeer"
published: "2003-05-05T20:14:14.000Z"
updated: "2005-08-18T16:17:42.000Z"
replies: 19
views: 1297
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/76028-validera-textrutor-xx-yy"
---

# Validera textrutor (XX:YY)

## #1 — Peeer, 2003-05-05T20:14Z

```
<form action="add.php?add=results&step=3" method="post">
<input type="hidden" name="compid" value="1">
<tr><td><input type="text" name="u3" class="form"></td></tr>
<tr><td><input type="text" name="u6" class="form"></td></tr>
<tr><td><input type="text" name="u7" class="form"></td></tr>
<tr><td><input type="text" name="u5" class="form"></td></tr>
<tr><td><input type="text" name="u45" class="form"></td></tr>
<input type="submit" value="Spara"></form>
```

När jag submitar formuläret så vill jag göra en koll på alla textrutor (de som har ett namn som börjar på u). Dessa ska vara skrivna i formatet XX:YY alternativt vara lämnade tomma. XX kan vara allt mellan 00 och 59, samma sak gäller för YY. 
Dvs "00:59", "59:59", "", "15:00" är godkända, medans "0a:15", "00:60", "0015" inte är godkända. Hur gör jag detta?

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

## #2 — Peter S, 2003-05-05T21:24Z

```
<head>

<script type="text/javascript">
<!--

function validate(o){
	var f=o.elements,i=f.length;

	while(i-->0){
		if(f[i].name.indexOf("u")==0){
			if(f[i].value.length<1){
				continue;
			}
			if(!/^([0-5]{1}[0-9]{1}):([0-5]{1}[0-9]{1})$/.test(f[i].value)){
				alert("Fel");
				return false;
			}
		}
	}
};

//-->
</script>

</head>

...

<form action="add.php?add=results&step=3" method="post" onsubmit="return validate(this)">
<input type="hidden" name="compid" value="1">
<tr><td><input type="text" name="u3" class="form"></td></tr>
<tr><td><input type="text" name="u6" class="form"></td></tr>
<tr><td><input type="text" name="u7" class="form"></td></tr>
<tr><td><input type="text" name="u5" class="form"></td></tr>
<tr><td><input type="text" name="u45" class="form"></td></tr>
<input type="submit" value="Spara"></form>
```

 :)

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

## #3 — Peeer, 2003-05-06T05:39Z

Tackar!
Testar när jag kommer hem. :)

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

## #4 — Peeer, 2003-05-06T20:13Z

Det fungerade utmärkt. Tackar!

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

## #5 — MickeA.com, 2005-08-14T16:30Z

Jag skulle behöva ha lite hjälp med att modifiera ovanstående JS-Funktion litegrann.
Det är så att jag har ett formulär som skrivs ut dynamsikt och behöver kolla så at alla fält (alla är av typen "text") är ifyllda.

Formuläret består av3 stycken fält på varje "rad" ('mItem_SE', 'mItem_EN' samt 'mSOrder').

Hur ska jag göra?

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

## #6 — Peter S, 2005-08-15T00:15Z

Det beror på hur du vill att fälten skall valideras och när valideringen skall ske. Om de ej får vara tomma vid submit:

```
function trim(s){
    return s.replace(/(^\s)|(\s$)/g, "");
}

function validate(f){
    var elms = f.elements;

    if (trim(elms["mItem_SE"].value).length == 0){
        alert("SE");
        return false;
    }

    if (trim(elms["mItem_EN"].value).length == 0){
        alert("EN");
        return false;
    }

    if (trim(elms["mSOrder"].value).length == 0){
        alert("mSOrder");
        return false;
    }

    return true;
}

<form onsubmit="return validate(this)"...
```

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

## #7 — MickeA.com, 2005-08-16T14:44Z

Oj, det där ser jättebra ut, fullt användbart i mitt fall, men skulle man kanske kunna fixa till så den validerar "rätt" saker med en gång, kanske lätt att lägga in i ovanstående funktion?

Det är nämligen så att fält nummer 1 ('mItem_SE') är svenska , där får man fylla i max 50 tecken, a-ö, A-Ö, mellanslag etc.

Det andra fältet, (mItem_EN) är engelska och får således bara innehålla a-z, A-Z samt mellanslag etc.

Det tredje och sista fältet, ('mSOrder') är visningsordning för knapparna och får endast innehålla siffror, (1-9).

Nu är problemet att jag var tvungen att lägga till ID-Nummer för varje fältnamn, eftersom koden ligger i en Loop som kör en UPDATE till databasen på "varje varv".
Se <http://www.webforum.nu/showthread.php?s=&threadid=129790&forumid=22> för mer info om själva koden.

Går det fortfarande att lösa det här på ett smidigt sätt, skulle behöva en validering av dessa fält.

Tack!

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

## #8 — Peter S, 2005-08-16T15:11Z

```
function remws(s){
    return s.replace(/\s/g, "");
}

function validate(obj){
    var elms = obj.elements,
	len  = elms.length;

    for (var i = 0; i < len; ++i){
	if (elms[i].type != "hidden"){
	    if (/^mItem_SE/.test(elms[i].name)
		    && !/^[\wåäö\/]+$/i.test(remws(elms[i].value))){
		alert(elms[i].name);
		return false;
	    } else if (/^mItem_EN/.test(elms[i].name)
		    && !/^[a-z0-9_\/]+$/i.test(remws(elms[i].value))){
		alert(elms[i].name);
		return false;
	    } else if (/^mSorder/.test(elms[i].name)
		    && !/^\d+$/.test(remws(elms[i].value))){
		alert(elms[i].name);
		return false;
	    }
	}
    }

    return true;
}

<form onsubmit="return validate(this)"...
```

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

## #9 — MickeA.com, 2005-08-16T18:03Z

Ahh, där satt den ;)

Tack så mkt!

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

## #10 — MickeA.com, 2005-08-16T20:35Z

Hmm, något är fel, när jag klistrar in koden i min js-fil, så lägger den av helt och hållet i Mozilla FF.

Koden ser ut såhär:

```
<!--
function remws(s){
    return s.replace(/\s/g, "");
}
//-->
<!--
function validate(obj){
    var elms = obj.elements,
	len  = elms.length;

    for (var i = 0; i < len; ++i){
	if (elms[ i ].type != "hidden"){
	    if (/^mItem_SE/.test(elms[ i ].name)
		    && !/^[\wåäö/]+$/i.test(remws(elms[ i ].value))){
		alert(elms[ i ].name);
		return false;
	    } else if (/^mItem_EN/.test(elms[ i ].name)
		    && !/^[\w/]+$/.test(remws(elms[ i ].value))){
		alert(elms[ i ].name);
		return false;
	    } else if (/^mSorder/.test(elms[ i ].name)
		    && !/^[1-9]$/.test(remws(elms[ i ].value))){
		alert(elms[ i ].name);
		return false;
	    }
	}
    }

    return true;
}
//-->
```

Det konstiga är att i IE så funkar allt skitbra, men det verkar som att FF inte längre hittar js-filen efter att jag klistrat in koden ovan, för samtliga funktioner i filen blir 

*'funktionsnamn' not defined*.

Som sagt, allt funkar i IE, men i Mozilla lägger filen av helt och hållet om det innehåller scriptet ovan.
Vad gör man åt det här, aldrig råkat ut för't tidigare.

Tack!

/r wF gillade inte \[ i\] i mitt kodexempel ovan, så har särat på dessa i form av \[ i \]

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

## #11 — Peter S, 2005-08-16T20:43Z

Jag hade glömt att escape:a ett tecken. Inlägget ovan är korrigerat.

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

## #12 — MickeA.com, 2005-08-17T05:16Z

> **Peter S skrev:**
>
> Jag hade glömt att escape:a ett tecken. Inlägget ovan är korrigerat.

Aha, då får man tacka igen, provar när jag kommer hem i eftermiddag och återkommer!

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

## #13 — MickeA.com, 2005-08-17T17:23Z

> **Peter S skrev:**
>
> Jag hade glömt att escape:a ett tecken. Inlägget ovan är korrigerat.

Tack, nu funkar jsfilen fullt ut igen, men i Mozilla finns fortf. en bugg.
Har man glömt en ruta så varnar den om det, precis som det ska vara. Men fyller man sedan i den (allt är då ifyllt) och trycker på submit så varnar den iaf. att rutan inte är ifylld.

Formuläret går således inte att posta.
Är det fortf. nått litet fel i koden?

Tack!

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

## #14 — Peter S, 2005-08-17T17:29Z

Fungerar kanon för mig. Kanske fyller du i "förbjudna" tecken i rutan?

Jag har uppdaterat validate() litet grand ytterligare.

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

## #15 — MickeA.com, 2005-08-17T19:04Z

> **Peter S skrev:**
>
> Fungerar kanon för mig. Kanske fyller du i "förbjudna" tecken i rutan?

Nä, klipper ut och klistrar in det som står.

> **Peter S skrev:**
>
> Jag har uppdaterat validate() litet grand ytterligare.

Jaha, får prova en sväng till, tack ;)

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

## #16 — MickeA.com, 2005-08-17T19:08Z

> **Peter S skrev:**
>
> Kanske fyller du i "förbjudna" tecken i rutan?

Ahh, jobbigt, du har rätt, det finns - (bindestreck) med i rutorna. Har du lust att lägga till så att det får vara bindestreck samt 0-9 i "mItem_SE/EN" ?

Sen ska jag sluta gnälla ;)
Tack!

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

## #17 — Peter S, 2005-08-17T19:11Z

Done!

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

## #18 — MickeA.com, 2005-08-17T20:11Z

> **Peter S skrev:**
>
> Done!

Tack & Bock!

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

## #19 — MickeA.com, 2005-08-18T16:07Z

Hmm, det stämmer fort. inte i FF.
I de svenska fälten får jag inte ange å, ä eller ö och i visningsordningsfälten får jag inte skriva '10'.

Det sistnämnda trodde jag att jag skulle klara av själv genom att byta ut \[1-9\] till \[0-9\], men det funkade inte :(

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

## #20 — Peter S, 2005-08-18T16:17Z

Det fungerar för mig. Jag har uppdaterat inlägget ovan för att reflektera möjligheten att kunna ange högre tal än 9.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/76028-validera-textrutor-xx-yy
