---
title: "Uppdatera div?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/134878-uppdatera-div"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Travoni"
published: "2005-09-27T13:29:01.000Z"
updated: "2009-06-05T15:31:07.000Z"
replies: 10
views: 657
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/134878-uppdatera-div"
---

# Uppdatera div?

## #1 — Travoni, 2005-09-27T13:29Z

Jag skulle vilja att denna funkar så att den skriver bara "Ping!" till diven var tredje sekund även fast jag skriver som febrilt i textboxen, skriver jag inget så skall "Ping!" raderas efter några sekunder.
Hur gör jag det?
Nu verkar ju timeout starta på nytt hela tiden.

```
<script>
var i=0;
function state_change(){
	if(i==0){
		document.getElementById('puff').innerHTML = '';
		setTimeout("i=1;", 3000);
	}else{
	i=0;
	document.getElementById('puff').innerHTML = 'Ping!';
	}
};

</script>

<input type="text" onkeyup="state_change()">
<div id="puff"></div>
```

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

## #2 — nitro2k01, 2005-09-27T15:13Z

Jag är inte säker på vad du menar, men detta bör fungera:

```
<script type="text/javascript">
// Referens till en gjord timeout
var currenttimeout=0;
function state_change(i){
	// Om det finns en timeout som väntar...
	if (currenttimeout)
		// ... så ta bort den!
		clearTimeout(currenttimeout);

	if(i){
		// Kod som ska köras när användaren inte har skrivit på 3 sekunder
		document.getElementById('puff').innerHTML = '';
	}else{
		// Kod som ska köras när användaren skriver i rutan
		document.getElementById('puff').innerHTML = 'Upd!';

		// Ta bort om 3 sekunder...
		currenttimeout=setTimeout("state_change(1);", 3000);
	}
};

</script>

<input type="text" onkeyup="state_change(0)" />
<div id="puff"></div>
```

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

## #3 — Travoni, 2005-09-28T06:40Z

/r.
Tack,
det ser helt rätt ut nu, men eftersom att en funktion skall köras här:

```
	}else{
                    //Här
                    kör_funktion();
```

Så kommer funktionen köras varje gång man lyfter fingret ifrån tangentbordet.

Jag skulle vilja att den funktionen körs var tredje sekund (Om det skrivs i textboxen vill säga.)

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

## #4 — Travoni, 2005-09-28T07:21Z

Så här:

```
<script type="text/javascript">
// Referens till en gjord timeout
var currenttimeout=0;
var f = 0;
function state_change(i){
	// Om det finns en timeout som väntar...
	if (currenttimeout)
		// ... så ta bort den!
		clearTimeout(currenttimeout);

	if(i){
		// Kod som ska köras när användaren inte har skrivit på 3 sekunder
		document.getElementById('puff').innerHTML = '';
		f = 0;

	}else{
		if(!f){
                         // Kod som ska köras när användaren skriver i rutan
		document.getElementById('puff').innerHTML = 'Skriver...'; f=1;
		}
		// Ta bort om 3 sekunder...
		currenttimeout=setTimeout("state_change(1);", 3000);
	}
};

</script>

<input type="text" onkeyup="state_change(0)" />
<div id="puff"></div>
```

Det kanske finns ett bättre sätt men detta verkar funka.

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

## #5 — Peter S, 2005-09-29T11:24Z

Glöm inte att acceptera ditt senaste inlägg som slutgiltigt.  :)

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

## #6 — Travoni, 2005-09-29T13:46Z

Ok, men är de det bästa sättet?

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

## #7 — Peter S, 2005-09-29T14:41Z

Svårt att säga, men i mina ögon ser det i alla fall bra ut. Du behöver nog inte fundera så mycket mer på detta.

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

## #8 — MickeA.com, 2009-06-05T09:13Z

Har lite problem med Settimeout, förstår inte hundra hur det fungerar. Jag har det här i en funktion:

```
getElemRefs("hand_rate").innerHTML = "Thanks for your vote!";
setTimeout(getElemRefs("hand_rate").innerHTML = message, 2000);
```

Tanken är att det ska stå "Thanks for your vote" i två sekunder och sen ska "message" skrivas till samma element.

Hur ska jag göra? Det vore även coolt om man kunde få "Thanks for your vote" att blinka under 2-3 sekunder innan den byter text.

Tack!

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

## #9 — johaseo, 2009-06-05T14:33Z

```
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<SCRIPT language="javascript">

function init()
{
    obj=document.getElementById("hand_rate");
    obj.innerHTML = "Thanks for your vote!";
    setTimeout ( "delayThisaBit()", 2000 );

}
function delayThisaBit()
{
    obj=document.getElementById("hand_rate");
    obj.innerHTML = "The Vote is now registered!";
}
</SCRIPT>
<body onload="init()">
    <form id="form1" runat="server">
    <div id="hand_rate">
    
    </div>
    </form>
</body>
</html>
```

prova det här istället ....

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

## #10 — MickeA.com, 2009-06-05T15:27Z

Det ovan funkar, men i mitt fall så \_måste\_ jag skicka med ett argument, eftersom det är ett dynamiskt meddelade som ska visas efter "thanks for your vote".

Har provat fram och tillbaks, men får det inte att funka.

Förslag?

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

## #11 — MickeA.com, 2009-06-05T15:31Z

Löste det genom:

```
var msg;
```

Högst upp i koden, sen sätter min funktion ett värde till den variabeln som sen visas.

Case closed, tack för hjälpen.

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/134878-uppdatera-div
