elminzter Skrevet 30. november 2005 Del 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 Lenke til kommentar
kakkle Skrevet 30. november 2005 Del 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 Lenke til kommentar
elminzter Skrevet 1. desember 2005 Forfatter Del 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... Lenke til kommentar
kakkle Skrevet 1. desember 2005 Del 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 Lenke til kommentar
elminzter Skrevet 2. desember 2005 Forfatter Del 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> Lenke til kommentar
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å