Hej!
Jag har ett problem som jag inte vet riktigt hur jag skall förklara, men jag gör ett försök.
Har på kundsräkning fått i uppgift att göra om lite på en sida som sköter en massa uträkningar från inputfält.
Uträkningarna är uppbyggda i JavaScript, som jag inte är direkt bevandrad i. Hur som helst.
Idag anger man ett värde i ett input fält (typ: 1.1), även om man använder komma (,) skrivs det punkt i inputfältet (.).
Är det någon som vet hur jag skall ändra, så att det blir komma (,) istället?
Vet inte om min förklaring var klockren, man undrar ni något, tala om det. För jag vet inte riktigt hur jag skall bära mig år för att förklara vad jag menar!?
@ndersMedlem sedan juni 200032 969 inlägg Du får nog ta och visa aktuell kod.
Här kommer koden som sköter uträkningarna;
<script language="JavaScript">
//the main function, called when a textbox is changed
function calc(){
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
var c = document.getElementById("c").value;
var d = document.getElementById("d").value;
var g = document.getElementById("g").value;
g = parseFloat(g);
var h = document.getElementById("h").value;
h = parseFloat(h);
var i = document.getElementById("i").value;
i = parseFloat(i);
var j = document.getElementById("j").value;
j = parseFloat(j);
var e = a * b - c * d;
e = parseFloat(e);
var f = 2 * a + 2 * b;
f = parseFloat(f);
var k = f * g - i * (g*g) + j * (g*g);
k = parseFloat(k);
var l = ( f - i * 1.2 ) / 1.2;
l = parseFloat(l);
var tPLUS = ( e - k ) * h * 10 * 1.05;
var tSUPER = f * 0.6 + 1.5;
var plastspik = e * 4;
var skarvplat = l + i;
var armeringsjarn = f * 5 * 1.25;
var armeringsnat = e * 1.2;
var armeringsbyglar = f / 0.6 + i + j;
var distanser = e / 4 + f;
var betong = e * 0.1 + h * k;
var pefolie = e * 1.2;
document.getElementById("e").innerHTML = Math.round(e*10)/10;
document.getElementById("f").innerHTML = Math.ceil(f*10)/10;
document.getElementById("k").innerHTML = Math.ceil(k*10)/10;
document.getElementById("l").innerHTML = Math.round(l);
document.getElementById("i2").innerHTML = Math.ceil(i*10)/10;
document.getElementById("tPLUS").innerHTML = Math.round(tPLUS);
document.getElementById("tSUPER").innerHTML = Math.ceil(tSUPER*10)/10;
document.getElementById("plastspik").innerHTML = Math.round(plastspik);
document.getElementById("skarvplat").innerHTML = Math.round(skarvplat);
document.getElementById("armeringsjarn").innerHTML = Math.ceil(armeringsjarn);
document.getElementById("armeringsnat").innerHTML = Math.round(armeringsnat);
document.getElementById("armeringsbyglar").innerHTML = Math.round(armeringsbyglar);
document.getElementById("distanser").innerHTML = Math.round(distanser);
document.getElementById("betong").innerHTML = Math.ceil(betong*10)/10;
document.getElementById("pefolie").innerHTML = Math.round(pefolie);
}
</script>
Så här ser själva inputen ut:
<input type="text" class="kalkylTextInput" size="5" value="0.0" onChange="calc();" id="a">
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Håller med @nders, men det är kanske så att du inte vet var du ska börja leta ens?
Jag skulle gissa att det ligger ett OnChange (?) i textrutan som kollar varje tangenttryckning som skrivs, och där byter ut tecknet [,] mot [.] meddetsamma.
[R]Och där kom koden![/R]
Är det inte så att . är det som används i beräkningar i JavaScript?
Har knappt räknat med decimaltal, men drar mig till minnes det.
Å andra sidan förklarar inte det att det ändras automatiskt, för [,] borde ge fel i beräkningar. (Det kanske tas om hand automatiskt, men visas sedan med [.]?)
http://www.devguru.com/Technologies/ecmascript/quickref/math.html
@ndersMedlem sedan juni 200032 969 inlägg Snälla, använd [kod]-taggar när du postar kod, så blir det lättare att läsa.
OK! Skall tänka på [KOD]-taggen nästa gång.
Sorry!!!
@ndersMedlem sedan juni 200032 969 inlägg Redigera gärna in [kod]-taggarna i inlägget med koden, så slipper vi vänta tills nästa gång. ;)