---
title: "Realtidsvalidering av inmatning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/151506-realtidsvalidering-av-inmatning"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "jme"
published: "2006-09-19T22:25:15.000Z"
updated: "2006-09-20T11:32:34.000Z"
replies: 3
views: 353
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/151506-realtidsvalidering-av-inmatning"
---

# Realtidsvalidering av inmatning

## #1 — jme, 2006-09-19T22:25Z

Hej.

Jag ska skapa en funktion för att kontrollera om användarens inmatning är korrekt.

Detta är tanken:

\<input type="text" name="date" id="date" onkeyup="validate();" onkeypress="validate();"/\>

Sedan vill jag att det ska stå vid \<input\> elementet "Fältet är tomt", "Felaktigt datum" "\_veckodagen_ifall_korrekt_datum" osv..

Just nu har jag:

```php

<input class="smallTextInput" type="text" onkeyup='validate(document.getElementById( "dStartDateTime" ).value, "dStartDateTime");' onkeypress='validate(document.getElementById( "dStartDateTime" ).value, "dStartDateTime");' name="dStartDateTime" id="dStartDateTime" />

	function validate(sDate, target)
	{
		var arr = str2RegexArr(sDate);
		
		var x = document.forms['oForm'].elements;
		var err = true;
		if(sDate == null || sDate == "")
		{
			//alert('23');
			writeError(x[target], 'Kenttä jäi tyhjäksi');
			err = false;		
		}
		else if(arr == null || arr.length != 6)
		{
			//alert('sss');
			x[target].onchange = removeError;
			writeError(x[target],'Virheellinen päivämäärä');
			err = false;
		}
		else if(!validateDate(arr[1], arr[2], arr[3], arr[4], arr[5]) )
		{
			writeError(x[target],'Virheellinen päivämäärä');
			
			err = false;
		}
		
		return err;
	}		

	function writeError(obj,message) {
		validForm = false;
		if (obj.hasError) return;
		
		if (W3CDOM) {
			obj.className += ' error';
			obj.onchange = removeError;
			var sp = document.createElement('span');
			sp.className = 'error';
			sp.appendChild(document.createTextNode(message));
			obj.parentNode.appendChild(sp);
			obj.hasError = sp;
		}
		else {
			errorstring += obj.name + ': ' + message + '\n';
			obj.hasError = true;
		}
		
	}	
	
function removeError() {
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
```

Jag har problem med att få error-fältets text att uppdateras korrekt. Jag vill at den skall ändras genast då innehållet förändras (om förändringen bidrar till en annan text, dvs).

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

## #2 — Peter S, 2006-09-20T08:10Z

Hej!  :) 

Varför inte göra det enkelt?

```
<input class="smallTextInput" type="text" onkeyup="validate(this.value, 'spanCmt');" onkeypress="validate(this.value, 'spanCmt');" name="dStartDateTime" id="dStartDateTime" /> 

<span id="spanCmt"></span>

    function validate(sDate, target) 
    { 
	var spanCmt = document.getElementById(target);
	var arr = str2RegexArr(sDate);
	if (sDate == "") spanCmt.innerHTML = "Fältet är tomt";
	else if (arr == null || arr.length != 6) spanCmt.innerHTML = "";
	else if (!validateDate(arr[1], arr[2], arr[3], arr[4], arr[5])) spanCmt.innerHTML = "Felaktigt datum";
	else spanCmt.innerHTML = "\"Veckodag här\"";
    }            
     
window.onload = function()
{
	validate(document.forms["oForm"].elements["dStartDateTime"].value, 'spanCmt');
}
```

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

## #3 — jme, 2006-09-20T11:24Z

Givetvis! Gärna så enkelt som möjligt. Tack! Skall testa det nu. Enda kruxet är att jag inte kommer att kunna placera window.onload = xxx i head-taggen pga att sidan som scriptet skall placeras, inte är en komplett html-sida, utan laddas in.

Sen har jag även läst att man inte ska använda xxx.innerHTML, men det kanske är en pyttesak? :)

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

## #4 — jme, 2006-09-20T11:32Z

Kanon, Peter S!  :)

Först så var det lite konstigt då "fältet är tomt" blinkadetill snabbt men så klistrade jag in window.onload = xxx och vips så funkade det prima!

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/151506-realtidsvalidering-av-inmatning
