Hej! Du måste använda .value på det du får tillbaka av getElementById() för att få innehållet i input-taggen. Aha! Tack! Det har med typerna på dina objekt att göra (och mer specifikt vad som händer när du subtraherar två strängar som går att casta till tal). Här är en ledtråd: Tack för hjälpen!Beräkna skillnaden mellan 2 värden
Jag har ett formulär där jag knackar in 2 värden.
Ena värdet i första fältet "resultat_1" och andra
värdet i "resultat_2". Vid onblur i "resultat_2"
så ska resultatet presenteras i "resultat_3" med
hjälp av följande amatörkod.
Jag får inte till det. Vad gör jag för fel?
Tacksam för svar
/Lars
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>None</title>
<script type="text/javascript">
function berakning_resultat(input) {
var num1=new Number(document.getElementById('resultat_1'));
var num2=new Number(document.getElementById('resultat_2'));
var num=num1-num2;
document.getElementById('resultat_3').value=(num);
}
</script>
</head>
<body>
<form action="index.php" method="post" enctype="multipart/form-data">
<table width="800" border="1">
<tr>
<td><input name="resultat_1" id="resultat_1" type="text" /></td>
<td><input name="resultat_2" id="resultat_2" type="text" onblur="berakning_resultat(this.value);" /></td>
<td><input name="resultat_3" id="resultat_3" type="text" readonly="readonly" /></td>
</tr>
</table>
</form>
Sv: Beräkna skillnaden mellan 2 värden
function berakning_resultat() {
var num1=document.getElementById('resultat_1').value,
num2=document.getElementById('resultat_2').value,
num=num1-num2;
document.getElementById('resultat_3').value=num;
}
Sv:Beräkna skillnaden mellan 2 värden
Jag har vidareutvecklat lite. I stället för att slå 100.34 så slår jag 100,34. Med replace ersätter jag , med . så att talet går att beräkna.
Sen ska resultatet presentares med , i stället för .
Här funkar det inte som jag vill. Vill du kolla vad jag gör för fel?
<script type="text/javascript">
function berakning_resultat() {
var num1=document.getElementById('resultat_1').value.replace(',','.'),
num2=document.getElementById('resultat_2').value.replace(',','.'),
num3=num1-num2,
num=num3.replace('.',',');
document.getElementById('resultat_3').value=num;
}
</script>
/Lars
Sv: Beräkna skillnaden mellan 2 värden
function berakning_resultat() {
var num1=document.getElementById('resultat_1').value.replace(',','.'),
num2=document.getElementById('resultat_2').value.replace(',','.'),
num3=num1-num2;
document.writeln("<br/>\ntypeof num1 is " + typeof num1);
document.writeln("<br/>\ntypeof num2 is " + typeof num2);
document.writeln("<br/>\ntypeof num2.replace is " + typeof num2.replace);
document.writeln("<br/>\ntypeof num3 is " + typeof num3);
document.writeln("<br/>\ntypeof num3.replace is " + typeof num3.replace);
}
Sv:Beräkna skillnaden mellan 2 värden
Jag löste problemet med hjälp av toString() enligt:
num3=((num1-num2).toString()).replace('.',',');
/Lars