elminzter Skrevet 30. november 2005 Skrevet 30. november 2005 (endret) Hvorfor funker ikke denne her? altså, plussknappen funker ikke, men minusknappen funker... når verdien er 0 og jeg trykker pluss så gir den meg 01, 011, 0111 (behandler den som en tekststreng), mens minus subtraherer som "normalt" men om jeg erstatter felt.value = felt.value + 1; med felt.value = felt.value - (-1); så funker den...noen som har en god forklaring? <head> <script language="JavaScript"> function SymError() { return true; } window.onerror = SymError; var SymRealWinOpen = window.open; function SymWinOpen(url, name, attributes) { return (new Object()); } window.open = SymWinOpen; </script> <script LANGUAGE="JavaScript"> function feltPluss(felt) { felt.value = felt.value + 1; } function feltMinus(felt) { felt.value = felt.value - 1; } </script> </head> <form> <input type="text" name="str" value="0"> <input type="button" onClick="feltPluss(this.form.str)" value="+"> <input type="button" onClick="feltMinus(this.form.str)" value="-"> </form> <script language="JavaScript"> var SymRealOnLoad; var SymRealOnUnload; function SymOnUnload() { window.open = SymWinOpen; if(SymRealOnUnload != null) SymRealOnUnload(); } function SymOnLoad() { if(SymRealOnLoad != null) SymRealOnLoad(); window.open = SymRealWinOpen; SymRealOnUnload = window.onunload; window.onunload = SymOnUnload; } SymRealOnLoad = window.onload; window.onload = SymOnLoad; </script> Endret 2. desember 2005 av elminzter
kakkle Skrevet 30. november 2005 Skrevet 30. november 2005 (endret) Det er fordi alle verdier fra felt er av datatype string. I javascript er det jo slik at + brukes for å legge noe til en streng. F.eks dersom du har "1"+1 blir dette 11, akkurat som at "bilde"+1 blir bilde1. Her er to løsninger på problemet ditt: function feltPluss(felt) { felt.value = parseInt(felt.value) + 1; } parseInt gjør en string (streng) om til int (heltall) Eller løsningen som jeg ville valgt: function feltPluss(felt) { felt.value++; } Mindre kode Også ville jeg nok også brukt: function feltMinus(felt) { felt.value--; } EDIT: /code tag /k Endret 30. november 2005 av kakkle
elminzter Skrevet 1. desember 2005 Forfatter Skrevet 1. desember 2005 hehe, fant utav det i går kveld, men om du skal bruke ++ på slutten så må det også gjøres om til integer først...
kakkle Skrevet 1. desember 2005 Skrevet 1. desember 2005 hehe, fant utav det i går kveld, men om du skal bruke ++ på slutten så må det også gjøres om til integer først... Ikke nødvendig å gjøre det om til integer først dersom du bruker ++. Ihvertfall ikke hos meg
elminzter Skrevet 2. desember 2005 Forfatter Skrevet 2. desember 2005 hehe, jaja, det hele var bare en liten test...det hele endte opp med <script language="javascript"> function incStat(field,cost,lim1,lim2,lim3,lim4,step,tot) { var vfield = parseInt(field.value); var vcost = parseInt(cost.value); var vlim1 = parseInt(lim1.value); var vlim2 = parseInt(lim2.value); var vlim3 = parseInt(lim3.value); var vlim4 = parseInt(lim4.value); var vstep = parseInt(step.value); var vtot = parseInt(tot.value); if (vcost <= vtot) { field.value = vfield+1; tot.value = vtot-vcost; step.value = vstep+1; vstep++; if (vlim4 == vstep) { cost.value = vcost+1; } else if (vlim3 == vstep) { cost.value = vcost+1; } else if (vlim2 == vstep) { cost.value = vcost+1; } else if (vlim1 == vstep) { cost.value = vcost+1; } } } function decStat(field,cost,lim1,lim2,lim3,lim4,step,tot) { var vfield = parseInt(field.value); var vcost = parseInt(cost.value); var vlim1 = parseInt(lim1.value); var vlim2 = parseInt(lim2.value); var vlim3 = parseInt(lim3.value); var vlim4 = parseInt(lim4.value); var vstep = parseInt(step.value); var vtot = parseInt(tot.value); if (vfield > 0) { if (vlim1 == vstep) { cost.value = vcost-1; vcost--; } else if (vlim2 == vstep) { cost.value = vcost-1; vcost--; } else if (vlim3 == vstep) { cost.value = vcost-1; vcost--; } else if (vlim4 == vstep) { cost.value = vcost-1; vcost--; } step.value = vstep-1; vstep--; field.value = vfield-1; tot.value = vtot+vcost; } } </script>
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå