webForumDet fria alternativet

Alternativ till name-tag, ändra value i input.

JavaScriptur Javascript

3 svar · 369 visningar · startad av bobrov

bobrovMedlem sedan maj 200833 inlägg
#1

Hej jag har följande kod i javascript:

document.onmousemove = mouseMove;

function mouseMove(ev){
	ev           = ev || window.event;
	var mousePos = mouseCoords(ev);
	document.TestForm.MouseXPosition.value = mousePos.x;
}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

Och i html-koden:

<form name="TestForm">
Mouse x position:<input name="MouseXPosition" value="start">
</form>

Detta fungerar bra. Den visar x-positionens värde i input-boxen.
Dock har jag för mig att name-tagen är på väg att bli föråldrad.
Jag skulle vilja göra detta på annat sätt, är det möjligt?

Att göra
var mousex = document.getElementById("MouseXPosition");
mousex.value = mousePos.x;

i mouseMove fungerar inte. Nån som har ett annat förslag som kanske fungerar?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du har ju inte gett elementet något id - det kan ju vara en bra idé om man vill använda getElementById. :)

TroxyMedlem sedan mars 20041 505 inlägg
#3

bobrov skrev:

Dock har jag för mig att name-tagen är på väg att bli föråldrad.

name-attributet i sig är det inget fel på, det finns kvar även i HTML5 (såvitt jag förstår det?).
Däremot är jag osäker på om det finns en spec som säger att document-objektet automatiskt får egenskaper som motsvarar name-attributen för alla förmulär.
Jag tycker det känns säkrare att använda forms- och elements-collections, som dessutom finns i DOM2:

document.forms['TestForm'].elements['MouseXPosition'].value = ...
bobrovMedlem sedan maj 200833 inlägg
#4

Du har ju inte gett elementet något id - det kan ju vara en bra idé om man vill använda getElementById.

Haha jo du =) Här måste jag ha klantat mig. Jag hade id på input-taggen men måste då ha missat nåt enkelt (tyckte dock jag försökte med allt) när jag försökte med getElementById....

Sen när jag testade den efteråt hade jag nog bara name-tag. Sorry =)

name-attributet i sig är det inget fel på

Det kanske det inte är? Det är bara det att när jag skriver i Visual Studio, 90% av tiden, så får jag varning, eller notering om att name-tagen helst inte ska användas eller nåt i den stilen. Att den fortfarande fungerar men...bla bla..

Jaja tack så mycket för tipset med elements-collection i alla fall även om jag ändå håller mig till getElement... för den är mer användbar överlag. Jag lär mig mer och mer javascript, det är kul i alla fall =).
Den som säger att script-språk är förenklat...haha jag lär mig hellre ett organiserat språk än ett rörigt script-språk :P (Jag har säkert helt fel...)

123 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)