Jag studerade S@rpp@ fråga för någon dag sedan och jobbade vidare lite med det tipset han fick. Men nu så skulle jag vilja lägga till några fler funktioner till addera().
Funktionerna är att man vill efter total skall kunna lägga på t.ex moms .. dvs totalvärdet x 1,25 och till slut även totalvärdet inkl moms i ett fält också. Viktigt att det blir 2 fält till så man får se momsen specad.
Hoppas att någon förstod vad jag skrev :-) Lägger med min lite ändrade kod:
<script type="text/javascript">
var delsum1=0;
var delsum2=0;
var delsum3=0;
var delsum4=0;
var delsum5=0;
var delsum6=0;
var delsum7=0;
var vardesum=0;
function addera(){
var elm = document.forms["form1"].elements;
delsum1=parseFloat(elm["antal1"].value)*parseFloat(elm["pris1"].value);
delsum2=parseFloat(elm["antal2"].value)*parseFloat(elm["pris2"].value);
document.getElementById("delsum1").innerHTML = delsum1;
document.getElementById("delsum2").innerHTML = delsum2;
document.getElementById("varde").innerHTML = delsum1+delsum2;
}
</script>
Jag vet nu inte vad jag skall lägga till "momsbelopp" och "totalvarde" för att de skall räknas ut i samma beräkning!
Skall jag även lägga till momsen i en "hidden" med value 1.25 eller?
Nu kanske jag saboterar allt för dig här, men eftersom jag är ganska road av javascript har jag skrivit om funktionen lite. Här är en liten testsida som jag skrev ihop precis. Kanske kan vara något att utgå ifrån i alla fall:
Jag orkar inte riktigt läsa hela din kod, men en gissning är att funktionen addrera() försöker uppdatera ett värde i något fält som inte finns i din kod. Ny funktion addera() som kollar om summeringsfälten finns innan den försöker uppdatera dem:
function addera()
{
var elms = document.forms["form1"].elements;
if ( !elms )
return false;
var momsfaktor = 1.25;
var totsum = 0.0;
var i = 1;
var obj = null;
while ( elms["antal"+i] && elms["pris"+i] )
{
var delsum = parseFloat( elms["antal"+i].value, 10 ) * parseFloat( elms["pris"+i].value, 10 );
if ( isNaN( delsum ) )
delsum = 0;
obj = document.getElementById( "delsum"+i );
if ( obj )
obj.innerHTML = delsum;
obj = document.getElementById( "delsum_moms"+i );
if ( obj )
obj.innerHTML = delsum * momsfaktor;
totsum += delsum;
i++;
}
if ( elms["totalpris"] )
elms["totalpris"].value = totsum;
if ( elms["totalpris_moms"] )
elms["totalpris_moms"].value = totsum * momsfaktor;
obj = document.getElementById( "totsum" );
if ( obj )
obj.innerHTML = totsum;
obj = document.getElementById( "totsum_moms" );
if ( obj )
obj.innerHTML = totsum * momsfaktor;
return true;
}
Den kanske fungerar åtminstone...
386 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91