Avatar billede henrik2000 Nybegynder
13. november 2001 - 08:10 Der er 14 kommentarer og
1 løsning

læg tal sammen gennem inputbokse

Hej!
hvordan lægger man tal sammen i inputbokse?
hvis jeg f.eks. har to inputbokse
<input TYPE=\"TEXT\" NAME=\"navn1\" size=\"10\">
<input TYPE=\"TEXT\" NAME=\"navn2\" size=\"10\">

og det man indtaster skal lægges sammen i en 3:
<input TYPE=\"TEXT\" NAME=\"navn3\" size=\"10\">

Avatar billede netsrac Praktikant
13. november 2001 - 08:14 #1
Det har ikke noget med ASP at gøre, men here goes.

<html>
<head>
<script>
function go()
{
document.form.navn3.value = parseInt(document.form.navn1.value) + parseInt(document.form.navn2.value)
}
</script>
</head>

<body>
<form name=\"form\">

<input TYPE=\"TEXT\" NAME=\"navn1\" size=\"10\" onchange=\"go();\" onkeyup=\"go();\">
<input TYPE=\"TEXT\" NAME=\"navn2\" size=\"10\" onchange=\"go();\" onkeyup=\"go();\">

og det man indtaster skal lægges sammen i en 3:
<input TYPE=\"TEXT\" NAME=\"navn3\" size=\"10\">

</form>
</body></html>
Avatar billede henrik2000 Nybegynder
13. november 2001 - 08:24 #2
Tak - men hvorfor står der \"NaN\" når man skriver noget i det ene felt, inden man skriver noget i det andet?

Avatar billede henrik2000 Nybegynder
13. november 2001 - 08:26 #3
og hvordan lægger man så kommatal sammen?
f.eks. 23,23 + 12,12?

Avatar billede netsrac Praktikant
13. november 2001 - 08:27 #4
Fordi der ikke står noget i det ene felt :) Du kan lave scriptet om til:

<script>
function go()
{
  if (document.form.navn1.value != \"\" && document.form.navn2.value != \"\")
  {
      document.form.navn3.value = parseInt(document.form.navn1.value) + parseInt(document.form.navn2.value)
  }
}
</script>
Avatar billede netsrac Praktikant
13. november 2001 - 08:29 #5
Kommatal, så skal der bruges parseFloat itedet:

<script>
function go()
{
  if (document.form.navn1.value != \"\" && document.form.navn2.value != \"\")
  {
      document.form.navn3.value = parseFloat(document.form.navn1.value) + parseFloat(document.form.navn2.value)
  }
}
</script>
Avatar billede netsrac Praktikant
13. november 2001 - 08:32 #6
Eller sådan her for at kunne bruge , til komma istedet for .

<script>
function go()
{
  if (document.form.navn1.value != \"\" && document.form.navn2.value != \"\")
  {
      document.form.navn3.value = parseFloat(document.form.navn1.value.replace(/,/gi, \".\")) + parseFloat(document.form.navn2.value.replace(/,/gi, \".\"))
  }
}
</script>
Avatar billede henrik2000 Nybegynder
13. november 2001 - 08:32 #7
parsefloat virker kun når man bruger punktum, og ikke hvis man bruger komma...
Avatar billede henrik2000 Nybegynder
13. november 2001 - 08:33 #8
Du kom mig i forkøbet!

jeg siger mange tak for den hurtige og effektive hjælp!
Avatar billede netsrac Praktikant
13. november 2001 - 08:34 #9
Det var så lidt :)
Avatar billede henrik2000 Nybegynder
13. november 2001 - 11:21 #10
Hej igen!

hvordan looper jeg igennem med dette her
stykke kode:

i linien
document.Fondsoplysninger.pct.value

skal pct være tallene 1 til 10, hvis du forstår!

er det noget med parseInt???...





<form name=\"Fondsoplysninger\" method=\"post\" action=\"side2.asp\">
<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">
<tr><td><b>Text</b></td>
<td><b>Percent</b></td></tr>

<%
    for i=1 to 10
    tal=i
        if tal<10 then
            tal=\"0\" & tal
        end if

%>


<script type=\"text/javascript\" LANGUAGE=\"javascript\">
function go()
{
for (i=1; i<=10; i++) 
if (document.Fondsoplysninger.pct.value != \"\" && document.Fondsoplysninger.pct.value != \"\") 
    {document.Fondsoplysninger.resultat.value = parseFloat(document.Fondsoplysninger.pct.value.replace(/,/gi, \".\")) + parseFloat(document.Fondsoplysninger.pct.value.replace(/,/gi, \".\")) 
      }
}
</script>
<tr><td><input type=\"text\" size=\"30\" name=\"tekst\"></td>
<td><input type=\"text\" size=\"5\" name=\"pct<%=tal%>\" onchange=\"go();\" onkeyup=\"go();\"></td></tr>

<%
    next
%>


<td><input type=\"submit\" name=\"Submit\" value=\"Save\"></td>
<td><input TYPE=\"TEXT\" NAME=\"resultat\" size=\"5\">(ialt)</td>
</table>
</form>

Avatar billede netsrac Praktikant
13. november 2001 - 14:26 #11
Skal det være 10 felter ialt som bliver lagt sammen ?
Avatar billede henrik2000 Nybegynder
13. november 2001 - 14:30 #12
Ja - jeg fandt selv ud af det - det lykkedes med eval. Prøv at se her:


<form name=\"Fondsoplysninger\" method=\"post\" action=\"side2.asp\">
<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">
<tr><td><b>Text</b></td>
<td><b>Percent</b></td></tr>
<%
    for i=1 to 10
    tal=i
        if tal<10 then
            tal=\"0\" & tal
        end if

%>

<script type=\"text/javascript\" LANGUAGE=\"javascript\">
function SumTotal(){
    var iTotal = 0;

    for (iCount=1; iCount<=10; iCount++){
        if (eval(\"document.Fondsoplysninger.pct\"+iCount+\".value\") != \"\"){
            iTotal = iTotal + parseFloat(eval(\"document.Fondsoplysninger.pct\"+iCount+\".value\").replace(/,/gi, \".\"));//parseFloat(document.Fondsoplysninger.pct(tal).value.replace(/,/gi, \".\"))
        }
    }
    document.Fondsoplysninger.resultat.value = iTotal;
}
</script>

<tr><td><input type=\"text\" size=\"30\" name=\"tekst\" value=\"<%=con(retur(start & tal))%>\"></td>
<td><input type=\"text\" size=\"5\" name=\"pct<%=i%>\" onChange=\"SumTotal();\" value=\"<%=con(retur(start & tal & \"_pct\")*100)%>\"></td></tr>

<%
    next
%>

<td><input type=\"submit\" name=\"Submit\" value=\"Save\"></td>
<td><input TYPE=\"TEXT\" NAME=\"resultat\" size=\"5\" value=\"100\">(Sum)</td>
</table>
</form>

Avatar billede henrik2000 Nybegynder
14. november 2001 - 10:25 #13
hej igen!
lige en sidste ting:
hvordan sætter man det samlet resultat i \"resultat-inputboksen\" når man loader siden?
Lige nu tæller den først sammen når man forlader et felt, så den starter bare med ingenting når man går ind på siden.
Avatar billede netsrac Praktikant
14. november 2001 - 13:52 #14
<body onload=\"go();\">
Avatar billede henrik2000 Nybegynder
14. november 2001 - 14:08 #15
selvfølgelig...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester