Avatar billede decrypto Nybegynder
29. maj 2006 - 17:09 Der er 7 kommentarer og
1 løsning

Problemer med at lægge værdier sammen

Jeg ved ikke hvorfor, mit script ikke kan finde ud af at lægge værdierne sammen som tal, de bliver lagt sammen som tekst.

Så fx. 0 + 5 = 05.

Her er min kode:
document.getElementById(productLineName+fields[3]+"_SubTotal").value += + CurrentObj.value;

Hvis man nu kunne caste mine værdier, så ville det hjælpe, men hvordan er det lige man gør det i JS?
Avatar billede mclemens Nybegynder
29. maj 2006 - 18:08 #1
document.getElementById(productLineName+fields[3]+"_SubTotal").value += + CurrentObj.value;

^ value er pr. standard text prøv:


(parseFloat er decimaltal og parseInt er heltal ... alle burde virke - nogle er dog lidt længere end andre ... make your pick ;) )


document.getElementById(productLineName+fields[3]+"_SubTotal").value=parseInt(document.getElementById(productLineName+fields[3]+"_SubTotal").value) + CurrentObj.value;

eller

document.getElementById(productLineName+fields[3]+"_SubTotal").value=parseFloat(document.getElementById(productLineName+fields[3]+"_SubTotal").value) + CurrentObj.value;

eller

tmpn=document.getElementById(productLineName+fields[3]+"_SubTotal");
tmpn.value=parseInt(tmpn.value) + CurrentObj.value;

eller

tmpn=document.getElementById(productLineName+fields[3]+"_SubTotal");
tmpn.value=parseFloat(tmpn.value) + CurrentObj.value;

eller

tmpn=document.getElementById(productLineName+fields[3]+"_SubTotal");
tmpn.value=+tmpn.value+CurrentObj.value;
Avatar billede mclemens Nybegynder
29. maj 2006 - 18:10 #2
eller

document.getElementById(productLineName+fields[3]+"_SubTotal").value=+document.getElementById(productLineName+fields[3]+"_SubTotal").value + CurrentObj.value;
Avatar billede decrypto Nybegynder
29. maj 2006 - 18:33 #3
Ja, jeg gangede med 1 og fik også det jeg ville hav, men jeg synes ikke det var pænt.

Jeg har bare et andet problem. Ved du om der findes noget lignende dictionary object i javascript, eller måske hvordan et lille eksempel på en hash tabel.
Avatar billede mclemens Nybegynder
29. maj 2006 - 19:08 #4
[ Ja, jeg gangede med 1 og fik også det jeg ville hav, men jeg synes ikke det var pænt. ] Ok, perseInt og parseFloat er den mest rigtige ting at bruge (plejer at bruge + foran eller gange som du nævner - men som du selv siger, så er det ikke "pænt") :)

[ Jeg har bare et andet problem. Ved du om der findes noget lignende dictionary object i javascript, eller måske hvordan et lille eksempel på en hash tabel. ] Det andet problem kender jeg ikke løsningen på :)
Avatar billede decrypto Nybegynder
29. maj 2006 - 19:16 #5
Jeg finder det på nettet.
Avatar billede mclemens Nybegynder
29. maj 2006 - 19:29 #6
- ellers så prøv et spørgsmål mere :)
... og tak for point :)
Avatar billede olebole Juniormester
30. maj 2006 - 07:09 #7
<ole>

En hash-tabel konstrueres i JavaScript med et JS-object:

var minLilleRygerTing = {
  "en": 1,
  "to": 1,
  "tre": 1,
  "fire": 1
};

if ( minLilleRygerTing["tre"] ) {
    alert("den var der zq!");
}

/mvh
</bole>
Avatar billede olebole Juniormester
30. maj 2006 - 07:11 #8
Prøv evt. at læse min artikel om JS-arrays og -objects:
    http://www.eksperten.dk/artikler/227
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