heey

Is het met JS mogelijk om een button te maken die aftelt:

Send (5)
Send (4)
Send (3)
Send (2)
Send (1)
Send --> en dan wordt de send button ge-enabled
moet de button aftellen?
of een tekst erboven?
Ja

setTimeout en telkens value & disabled veranderen.
De button moet aftellen.

Jelmer, nog een keer a.u.b. ;-)

[edit]
de settimeout snap ik nog, maar ik snap niet hoe ik die dan 4 keer kan laten herhalen, en steeds een getalletje minder geven
[/edit]
Een aflopend for-loopje? Misschien dat dit je helpt:

<? // voor de highlighting :c)

for (i = 5; i > 0; i--) {

  // javascript
}

?>
Net even bedacht. Persoonlijk vind ik setInterval een stuk makkelijker dan setTimeout.

Hij werkte in Safari. Hoe je hem wilt gaan toepassen weet ik niet, dus ik heb er maar een mooie functie van gemaakt.
<a href="javascript:sendForumCallback(document.getElementById('testSubmitButton'))">contdown</a>
<input type="submit" id="testSubmitButton" value="Send"/>

<script>
function sendForumCallback(buttonElement)
{
   var sendButton = buttonElement;
   var originalSendButtonValue = sendButton.value;
   var sendButtonCountdownI = 5;
   
   var sendButtonCountdown = setInterval(function(){
      if(sendButtonCountdownI <= 0) {
         clearInterval(sendButtonCountdown);
         sendButton.disabled = false;
         sendButton.value = originalSendButtonValue;
      } else {
         sendButton.disabled = true;
         sendButton.value = originalSendButtonValue + ' (' + sendButtonCountdownI + ')';
         sendButtonCountdownI--;
      }
   }, 1000);
}
</script>
Jip schreef op 07.08.2006 17:28
Een aflopend for-loopje? Misschien dat dit je helpt:

<? // voor de highlighting :c)

for (i = 5; i > 0; i--) {

  // javascript
}

?>


ik denk dat je dit bedoelt
<?

for ($i = 5; $i > 0; $i--) {

// javascript
}

?>
Thx Jemer,

Hiermee kom ik er wel uit ;-)
@Jip & Donhertog:

Javascript kent geen 'sleep'-functie, dus je kan niet ieder rondje door de for-lus 1 seconde laten duren.
Vaag,

waarom werkt dit niet:


		<script language="javascript" type="text/javascript">
			function sendForumCallback(buttonElement)
			{
			   var sendButton = buttonElement;
			   var originalSendButtonValue = sendButton.value;
			   var sendButtonCountdownI = 5;
			   
			   var sendButtonCountdown = setInterval(function(){
				  if(sendButtonCountdownI <= 0) {
					 clearInterval(sendButtonCountdown);
					 sendButton.disabled = false;
					 sendButton.value = originalSendButtonValue;
				  } else {
					 sendButton.disabled = true;
					 sendButton.value = originalSendButtonValue + ' (' + sendButtonCountdownI + ')';
					 sendButtonCountdownI--;
				  }
			   }, 1000);
			}
			
			window.onload = function() {
				sendForumCallback(document.getElementById('send'));
			}
		</script>


Er gebeurd gewoon niks....
Opgelst!

Onload in de body gezet

Reageren