Avatar billede websam Nybegynder
14. september 2004 - 12:56 Der er 12 kommentarer og
2 løsninger

Udregning på basis af to form felter ?

Hejsa,

Jeg står og mangler en stump javascript der kan beregne et gennemsnit af to tal indtastet i hvert sit formular felt. Gennemsnittet skal automatisk vises i et 3. formular felt så snart de 2 andre tal er indtastet og inden der trykkes på send knap er dette muligt med javascript ?

/Websam
Avatar billede fennec Nybegynder
14. september 2004 - 13:27 #1
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function beregn()
{
  if(!isNaN(parseInt(document.MyForm.res1.value)) && !isNaN(parseInt(document.MyForm.res2.value)))
  {
    document.MyForm.res3.value = (parseInt(document.MyForm.res1.value)+parseInt(document.MyForm.res2.value))/2
  }
}
//-->
</SCRIPT>
<form name="MyForm" method="post">
<input type="Text" name="res1" value="" onchange="beregn()"><br>
<input type="Text" name="res2" value="" onchange="beregn()"><br>
<input type="Text" name="res3" value="">
</form>
Avatar billede websam Nybegynder
14. september 2004 - 13:33 #2
Ok det ser fint ud og hvis den altid skal runde ned til nærmeste hele tal f.eks 176,69 bliver til 176 er det så svært at tilføje ?

/Websam
Avatar billede websam Nybegynder
14. september 2004 - 13:36 #3
Og så skulle denne linie :

document.MyForm.res3.value = (parseInt(document.MyForm.res1.value)+parseInt(document.MyForm.res2.value))/2

Laves om til :

document.MyForm.res3.value = (parseInt(document.MyForm.res2.value)/parseInt(document.MyForm.res1.value))

Så bliver de 2 tal divideret ud med hindanden :o)

/Websam
Avatar billede roenving Novice
14. september 2004 - 13:46 #4
Hvorfor skal de divideres ?-)

En anden vinkel:

<form>
Tal 1: <input name="tal1" type="text" value="87" onkeyup="snit(this.form)"><br>
Tal 2: <input name="tal2" type="text" value="187" onkeyup="snit(this.form)"><br>
Gennemsnit: <input type="text" name="tal3" value="" readonly="readonly">
</form>

<script type="text/javascript">
function snit(f){
  f.tal3.value = Math.floor((+f.tal1.value + +f.tal2.value)/2);
}
</script>
Avatar billede fennec Nybegynder
14. september 2004 - 13:51 #5
du bad bare om "gennemsnit af to tal", men what ever :o)

    document.MyForm.res3.value = parseInt((parseInt(document.MyForm.res1.value)/parseInt(document.MyForm.res2.value)))

burde runde ned.
Avatar billede websam Nybegynder
14. september 2004 - 13:58 #6
Super det virker og sorry for min forkerte beskrivelse :o)

/Websam
Avatar billede websam Nybegynder
14. september 2004 - 14:08 #7
roenving >> Hvordan undgår jeg at der står NaN i felt 3 når der ikke er skrevet noget i felt 1 og 2 ? Og hvordan undgår jeg at der står Infinity hvis der kun er skrevet noget i felt 2 ?

/Websam
Avatar billede roenving Novice
14. september 2004 - 14:21 #8
Ved at lægge en test à la den fennec viser ind:

<form>
Tal 1: <input name="tal1" type="text" value="87" onkeyup="snit(this.form)"><br>
Tal 2: <input name="tal2" type="text" value="187" onkeyup="snit(this.form)"><br>
Gennemsnit: <input type="text" name="tal3" value="" readonly="readonly">
</form>

<script type="text/javascript">
function snit(f){
  var t = +f.tal1.value / +f.tal2.value;
  f.tal3.value = (!isNaN(t)&&t!='Infinity')?Math.floor(t/2):0;
}
</script>
Avatar billede websam Nybegynder
14. september 2004 - 15:16 #9
Hvis jeg benytter den du lige skrev ja så udskriver den blot 0 hele tiden og laver ikke nogen division af de 2 tal ?

/Websam
Avatar billede roenving Novice
14. september 2004 - 15:23 #10
-- så længe tal 2 er større end tal 1, ja !-)

-- og jeg glemte at fjerne halveringen, men den tavetosse kan du vel godt rette !o]
Avatar billede websam Nybegynder
14. september 2004 - 15:26 #11
ja ja den er væk :o) Og det var jo fordi jeg lige skulle bytte om på tal 1 og tal 2 så virker den oxo, smid et svar så kan i dele :o)

/Websam
Avatar billede roenving Novice
14. september 2004 - 15:29 #12
Velbekomme '-)
Avatar billede roenving Novice
14. september 2004 - 15:37 #13
-- og tak for point ;~}
Avatar billede websam Nybegynder
14. september 2004 - 15:38 #14
det var så lidt :o)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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