webForumDet fria alternativet
Logga in / Bli medlem

Formatera tal!

JavaScript

4 svar · 328 visningar · startad av Alamartimo

Medlem sedan okt. 2004129 inlägg
Trådstart#1

Har letat men hittar inget här som jag kan använda mig av eller så fungerar det inte med det jag redan fått hjälp med här av Jawbreaker :)

Har försökt få ut värdet och med hjälp av vbscript formatera värdet men det fungerar inte.
I alla fall har jag den här koden för summering av checkboxar.

{
	var sum = 0;

	for ( var i = 0; i < p_form.elements.length; i++ )
	{
		if ( p_form.elements[i].type == "checkbox" && p_form.elements[i].checked )
			sum += parseFloat( p_form.elements[i].value )
	}

	document.getElementById( "totalSum" ).innerHTML = +sum;
}

Värdet får jag ut med

<div id="totalSum"></div>

Som det är nu så är siffrorna ihop ex 1234567
men jag vill formatera dem så att det blir -1 234 567

Sen om det är någon som vet om det går att få ut värdet så jag kan hantera det med vbscript eller det kanske inte är möjligt??

Tackar på förhand :)

Medlem sedan jan. 2003296 inlägg
#2

Det finns nog en hel del varianter på det du vill göra, men jag skrev ihop en egen funktion nu, bara för att det är kul.
Den är inte direkt hårdtestad om man säger så, but here goes:

function formatNumber( p_num )
{
	var ret = "";

	var a = ( "" + p_num ).split( "." );
	if ( 0 < a.length )
	{
		if ( 0 < a[0].length )
		{
			var tmpStr = "";

			var p = "";
			if ( '-' == a[0].charAt(0) )
			{
				a[0] = a[0].substring( 1, a[0].length );
				p = "-";
			}

			var c = 0;
			for ( var i = a[0].length - 1; i >= 0; i-- )
			{
				if ( 0 < c && 0 == c % 3 )
					tmpStr += " ";
				tmpStr += a[0].charAt(i);
				c++;
			}

			ret = p;
			for ( var i = tmpStr.length - 1; i >= 0; i-- )
			{
				ret += tmpStr.charAt(i);
			}
		}

		if ( a[1] )
			ret += ( "." + a[1] );
	}

	return ret;
}

Och i din andra funktion får du då ändra

document.getElementById( "totalSum" ).innerHTML = sum;

till

document.getElementById( "totalSum" ).innerHTML = formatNumber( sum );
Medlem sedan okt. 2004129 inlägg
#3

Jawbreaker:

Tack för att du tar dig tid :)

Tja nää det funkade inte.

"undefined" står det där jag skriver ut det med

<div id="totalSum"></div>
Medlem sedan jan. 2003296 inlägg
#4

Slarvfel av mig. Så går det när man inte testar det man gör...
Hur som helst har jag uppdaterat funktionen i inlägget ovan, så plocka funktionen därifrån igen.

Medlem sedan okt. 2004129 inlägg
#5

Jawbreaker:

Underbart :) det funkar..

Bugar och bockar

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)