/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Regneproblem Javascript
Fra : Gryndahl
Vist : 559 gange
100 point
Dato : 09-09-02 20:06

Hej NG

Er der ikke en venlig sjæl der kan fortælle mig hvordan man i javascript laver
2 felter man kan taste i - trykke på en knap og så få værdien i dem lagt sammen og skrevet i et tredie felt ?

Mvh
Henrik


 
 
Accepteret svar
Fra : kaasgaard

Modtaget 110 point
Dato : 09-09-02 21:57

Hep,

Du skal bruge 3 input felter
<form name=myform>
<input name="felt1" type="tekst" value="">
<input name="felt2" type="tekst" value="">
<input name="sum" type="tekst" value="">
<input type="button" value="udregn" onClick="calc(this.form)">
</form>

i <head></head> skal defineres funktionen calc

function calc(theForm) {
//definer variable
var sum, felt1, felt2;

//hent værdier fra form
felt1 = theForm.felt1.value;
felt2 = theForm.felt2.value;

//læg værdier sammen
sum = felt1 + felt2;

//put resultatet ud i formen
theForm.sum.value = sum;
}

Håber det hjælper.

// Martin



Kommentar
Fra : kaasgaard


Dato : 09-09-02 22:00

Hep,

Hvis du gerne vil have beregnet efterhånden som du taster så eksperimenter med:
onKeyUp="calc(this.form)" onChange="calc(this.form)" onkeypress="calc(this.form)"

// Martin

Kommentar
Fra : Nyhedsbruger


Dato : 09-09-02 20:28

"Gryndahl" <Gryndahl.news@kandu.dk> writes:

> Hej NG
>
> Er der ikke en venlig sjæl der kan fortælle mig hvordan man i javascript
> laver
> 2 felter man kan taste i - trykke på en knap og så få værdien i dem lagt
> sammen og skrevet i et tredie felt ?

Der skal nok også bruges noget HTML.
Følgende eksempel virker i browsere der forstår getElementById.

<script type="text/javascript" lang="javascript1.0">
function adder()
{
document.getElementById('felt3').value =
(parseInt(document.getElementById('felt1').value)+
parseInt(document.getElementById('felt2').value));
}
</script>

<form action="javascript:void(false)" onSubmit="adder()">
<input id="felt1" type="text" value="">+
<input id="felt2" type="text" value="">
<input type="submit" value="=">
<input id="felt3" type="text" value="">
</form>


/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Kommentar
Fra : srhansen


Dato : 09-09-02 22:08

Det virker ikke ved addition, kun ved multiplikation - jeg var også nået hertil

Kommentar
Fra : kaasgaard


Dato : 09-09-02 22:18

Hep,

Det forslag jeg skrev, har kørt i produktion på et site i et par år og fungerer glimrende (dog med et par kontroller indlagt).

// Martin

Kommentar
Fra : srhansen


Dato : 09-09-02 22:33

<kaasgaard>

prøv selv at eksekvere din kode i min browser giver 4+5 =45, jeg har samme problem i min kode multiplicering virker derimod godt.

Kommentar
Fra : kaasgaard


Dato : 09-09-02 22:45

HEh,

Det er hvad der sker når man beskærer kode uden omtanke... da jeg fjernede nogle kontroller fjernede samtidigt en parseInt().

felt1 = theForm.felt1.value;
felt2 = theForm.felt2.value;

Laves om til

felt1 = parseInt(theForm.felt1.value);
felt2 = parseInt(theForm.felt2.value);

Så spiller det.... se det evt i "aktion" på http://www.kaasgaard.com/kandu/

Der er dog ikke lavet kontrol af bruger input i eksemplet.

// Martin

Kommentar
Fra : srhansen


Dato : 09-09-02 22:50

Selvfølgelig ! Jeg har brugt 1 hel time på at lede efter parseInt()
Jeg har ikke nogen særlig brugbar reference liste, tillykke :)

Kommentar
Fra : Nyhedsbruger


Dato : 09-09-02 21:10

"Lasse Reichstein Nielsen" skrev d. 09-09-02 20:28 dette indlæg :
> "Gryndahl" <Gryndahl.news@kandu.dk> writes:
>
> > Hej NG
> >
> > Er der ikke en venlig sjæl der kan fortælle mig hvordan man i
javascript
> > laver
> > 2 felter man kan taste i - trykke på en knap og så få værdien i dem
lagt
> > sammen og skrevet i et tredie felt ?
>
> Der skal nok også bruges noget HTML.
> Følgende eksempel virker i browsere der forstår getElementById.
>
> <script type="text/javascript" lang="javascript1.0">
> function adder()
> {
> document.getElementById('felt3').value =
> (parseInt(document.getElementById('felt1').value)+
> parseInt(document.getElementById('felt2').value));
> }
> </script>
>
> <form action="javascript:void(false)" onSubmit="adder()">
> <input id="felt1" type="text" value="">+
> <input id="felt2" type="text" value="">
> <input type="submit" value="=">
> <input id="felt3" type="text" value="">
> </form>
>
>
> /L
> --
> Lasse Reichstein Nielsen - lrn@hotpop.com
> 'Faith without judgement merely degrades the spirit divine.'

Hej Lasse
Tak for hjælpen

Henrik

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


Kommentar
Fra : Nyhedsbruger


Dato : 09-09-02 21:19

Hov.. Hvordan får jeg den til at regne med kommatal ?

:)

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


Kommentar
Fra : kaasgaard


Dato : 09-09-02 23:00

Hep,

Brug parseFloat() istedet for parseInt, så spiller det :)

(Og husk at som ',' bruges '.' - med mindre du erstatter det)

// Martin

Kommentar
Fra : Gryndahl


Dato : 09-09-02 23:17

Se nu vil den regne med kommatal .... Men...
Taster man 1.4 + 2.3 giver det iflg maskinen 3.69999 men i min teminologi giver det 3.7 ...
Hvad sker her ? og hvordan retter man lige det ?
(Skal være helt præcise svar/udregninger da den skal udregne blandingen på luft/Nitrox til dykning)



Kommentar
Fra : kaasgaard


Dato : 09-09-02 23:26

Hep,

Brug funktionen Math.round()

Check evt. http://www.kaasgaard.com/kandu/index2.php og view source... der kan du se hvordan den er brugt

sum = (Math.round((felt1 + felt2)*100))/100;

Håber det hjælper dig

// Martin

Kommentar
Fra : Nyhedsbruger


Dato : 10-09-02 01:55

"Gryndahl" <Gryndahl.news@kandu.dk> writes:

> Hov.. Hvordan får jeg den til at regne med kommatal ?

parseInt -> parseFloat :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste