Avatar billede Slettet bruger
18. juni 2002 - 00:10 Der er 6 kommentarer og
1 løsning

Lidt eval() og textfelter

Hvorfor virker dette ikke?

<form>
<input type="text" name="pris" value="5798">

<select name="metode" onchange="this.form.beloeb.value=this.value;this.form.beloeb2.value=eval(this.form.beloeb.value)+eval(this.form.pris.value)">

<option value="">Vælg betalingsform
<option value="15 kr">Dankort
<option value="25 kr">Indbetaling på giro
<option value="45 kr">Efterkrav
</select>
<input type="text" name="beloeb">

<input type="text" name="beloeb2">

</form>

Burde jeg ikke få lagt værdien fra pris og metode over i beloeb2??
Avatar billede fireblast Nybegynder
18. juni 2002 - 00:31 #1
<SCRIPT LANGUAGE="JavaScript">
function makeMyKrs(myNumber){
myNumber += " kr";
return myNumber;
}

function makeMyBeloeb2(myPrice){
var price=f1.pris.value;
theNumber=eval(price) + eval(myPrice);
return theNumber;
}
</SCRIPT>
<form name="f1">
<input type="text" name="pris" value="5798">

<select name="metode" onchange="this.form.beloeb.value=makeMyKrs(this.value);this.form.beloeb2.value=makeMyBeloeb2(this.value);">

<option value="">Vælg betalingsform
<option value="15">Dankort
<option value="25">Indbetaling på giro
<option value="45">Efterkrav
</select>
<input type="text" name="beloeb">

<input type="text" name="beloeb2">

</form>
Avatar billede fireblast Nybegynder
18. juni 2002 - 00:32 #2
måske lidt upraktisk, men det virker..
Avatar billede fireblast Nybegynder
18. juni 2002 - 00:54 #3
<SCRIPT LANGUAGE="JavaScript">
function makeMyKrs(myNumber){
myNumber += " kr";
return myNumber;
}

function makeMyBeloeb2(myPrice){
var price=f1.pris.value;
theNumber=eval(price) + eval(myPrice);
return makeMyKrs(theNumber);
}
</SCRIPT>
<form name="f1">
<input type="text" name="pris" value="5798">

<select name="metode" onchange="this.form.beloeb.value=makeMyKrs(this.value);this.form.beloeb2.value=makeMyBeloeb2(this.value);">

<option value="0">Vælg betalingsform
<option value="15">Dankort
<option value="25">Indbetaling på giro
<option value="45">Efterkrav
</select>
<input type="text" name="beloeb">

<input type="text" name="beloeb2">

</form>



Lidt forbedret, idet det tilføjer " kr" til det endelige resultat også...gidder ikke arbejde mere i aften, men ka også lave så den skriver det første beløb i " kr" imorn...
Avatar billede jakoba Nybegynder
18. juni 2002 - 09:32 #4
funktionen eval er bergenet til at udføre javascript sætninger.
      eval( "window.nyvar = 42;" );

Såvidt jeg kan se bruger du den til at gøre den streng af bogstaver der står i feltet til et tal. Det er nærmest en tilfældighed at eval nogen gange har den effekt. Det er ikke noget du kan stole på.

funktionen parseFloat( streng ) vil konvertere en streng til et decimaltal.
funktionen parseInt( streng ) vil returnere et tal svarende til et længste heltal der kan læses fra begyndelsen af den streng.

prøv med:
<select name="metode" onchange="this.form.beloeb.value=this.value;this.form.beloeb2.value=parseFloat(this.value)+parseFloat(this.form.pris.value)">

mvh JakobA
Avatar billede Slettet bruger
18. juni 2002 - 10:17 #5
Tak for det, fik det til at virke med Jakob's løsning. Vil du lægge et svar?

Jeg troede faktisk at eval() var til at stole på *G* men kan da godt se logikken i at bruge "de rigtige" funktioner.
Avatar billede jakoba Nybegynder
18. juni 2002 - 10:19 #6
ok. takker
Avatar billede Slettet bruger
18. juni 2002 - 20:31 #7
:)
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