3z
Nybegynder
17. november 2006 - 13:22
Der er
21 kommentarer og 1 løsning
Indtast i input felt og vis tekst udenfor input felt
Hej, Ved ikke om det er javascript der skal til, men here goes: Jeg har to input text felter, hvor man indtaster et beløb. Jeg ville nu gerne kunne lave en beregning ved siden af input feltet på baggrund af det indtastede uden at submitte formen. input felt 1 indtastes f.eks. 100 input felt 2 indtastes f.eks. 150 Beregning af forskellen mellem disse indtastninger vises: 50 Er det fatbart og muligt ?
Annonceindlæg fra Axcess Nordic
17. november 2006 - 13:32
#1
F.eks. <form> <input name="min" value="minimum" onfocus="this.value='';" onchange="visForskel(this);"> <input name="max" value="maximum" onfocus="this.value='';" onchange="visForskel(this);"> </form> Forskel: <span id="forskel">N/A</span> <script type="text/javascript"> function visForskel(elm){ var f = elm.form; if(!isNaN(f.min.value) && !isNaN(f.max.value)){ document.getElementById("forskel").firstChild.nodeValue = f.max.value - f.min.value; }else document.getElementById("forskel").firstChild.nodeValue = "N/A"; } </script>
3z
Nybegynder
17. november 2006 - 14:11
#2
Det er sgu perfekt ! Jeg har tilføjet en beregning mere, så jeg kan få forskellen i procent, men det lader til den kun kan beregne een ting ? <script type="text/javascript"> function visForskel(elm){ var f = elm.form; if(!isNaN(f.min.value) && !isNaN(f.max.value)){ document.getElementById("forskel").firstChild.nodeValue = f.max.value - f.min.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else document.getElementById("forskelprocent").firstChild.nodeValue = "0"; document.getElementById("forskel").firstChild.nodeValue = "N/A"; } </script>
17. november 2006 - 14:20
#3
-- du skal bare huske at indsætte noget i den anden span også !-) Forskel i %: <span id="forskelprocent">0</span> -- els velbekomme '-)
3z
Nybegynder
17. november 2006 - 14:50
#4
Det har jeg sandelig gjort, men det virker underligt nok ikke.... (Fortjeneste: <span id="forskel">0</span> kr. / <span id="forskelprocent">0</span>%)
3z
Nybegynder
17. november 2006 - 14:52
#5
Der står bare nul hele tiden - her er hele den del af koden: <script type="text/javascript"> function visForskel(elm){ var f = elm.form; if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else document.getElementById("forskel").firstChild.nodeValue = "0"; document.getElementById("forskelprocent").firstChild.nodeValue = "0"; } </script> Kostpris: <input type="text" name="costprice" onfocus="this.value='';" onchange="visForskel(this);"> Salgspris: <input type="text" name="salesprice" onfocus="this.value='';" onchange="visForskel(this);"> (Fortjeneste: <span id="forskel">0</span> kr. / <span id="forskelprocent">0</span>%)
17. november 2006 - 14:53
#6
det kunne måake være at inputboksene ikke hedder salesprice og costprice, men min og max?
17. november 2006 - 14:55
#7
det er fordi du skal have en id="" i input ellers kan javascripten ikke finde elementet ud fra id (getElementById)
17. november 2006 - 14:57
#8
pjat, det er mig der ser forkert.. skulle måske få tjekket mine øjne....
17. november 2006 - 15:00
#9
en nærlæsning viser at du vidst nok mangler en form som i roenving's kommentar 17/11-2006 13:32:28
17. november 2006 - 15:06
#10
Fjern dog: "onfocus="this.value=''", det er sku da pisseirriterende når man sidder og arbejder med det;-)
17. november 2006 - 15:09
#11
endvider tror jeg også at du skal have ændret din if-sætning, da det det er den der sætter feltet til 0%!
17. november 2006 - 15:10
#12
Hvad hvis det ene felt ikke er angivet?
17. november 2006 - 15:15
#13
Du mangler også en parantes efter else - ellers får du kun sat det ene af felterne
3z
Nybegynder
17. november 2006 - 15:31
#14
Jeg har selvf. en form - har bare kun vist jer den del der vedr. denne lille beregning. Hvis jeg kun skriver dette, så virker det fint: <script type="text/javascript"> function visForskel(elm){ var f = elm.form; if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; }else document.getElementById("forskel").firstChild.nodeValue = "0"; } </script> men tilføjer jeg en linie mere, så er det stadig kun første linie der bliver udført - den anden er bare nul hele tiden: <script type="text/javascript"> function visForskel(elm){ var f = elm.form; if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else document.getElementById("forskel").firstChild.nodeValue = "0"; document.getElementById("forskelprocent").firstChild.nodeValue = "0"; } </script>
17. november 2006 - 15:33
#15
har du prøvet krukken skrev 17/11-2006 15:15:30 ?
17. november 2006 - 15:37
#16
Ja - du skal have en slut-parates efter begge else-sætninger. Eller får du kun sat den ene værdi. Desuden forstå jeg ikke hvor du ikke bruger <td>, <tr> og <table>. Dette ville også give mulighed for at du kan ændre udseendet af din form i et stylesceet.
17. november 2006 - 15:37
#17
Hov - jeg har vist lidt for tralvt. Undskylder dem mange stavefejl:-)
3z
Nybegynder
17. november 2006 - 16:29
#18
Jeg lavede det sgu bare med en ekstra if sætning - dit forslag virkede ikke krukken. Desuden har jeg selvf. tabeller osv, men bare ikke vist dem her... function visForskel(elm){{ var f = elm.form; if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; }else document.getElementById("forskel").firstChild.nodeValue = "0"; } if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else document.getElementById("forskelprocent").firstChild.nodeValue = "0"; }
17. november 2006 - 19:00
#19
if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else document.getElementById("forskel").firstChild.nodeValue = "0"; document.getElementById("forskelprocent").firstChild.nodeValue = "0"; } Skal rettes til: if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else { document.getElementById("forskel").firstChild.nodeValue = "0"; document.getElementById("forskelprocent").firstChild.nodeValue = "0"; }
17. november 2006 - 19:04
#20
Se :Kommentar: krukken 17/11-2006 15:15:30 Den er god nok - der mangler bare en '{' og '}' Den rettede jeg lige : if(!isNaN(f.costprice.value) && !isNaN(f.salesprice.value)){ document.getElementById("forskel").firstChild.nodeValue = (f.salesprice.value * 0.8) - f.costprice.value; document.getElementById("forskelprocent").firstChild.nodeValue = (((f.salesprice.value * 0.8) - f.costprice.value) * 100) / f.costprice.value; }else { // *** document.getElementById("forskel").firstChild.nodeValue = "0"; document.getElementById("forskelprocent").firstChild.nodeValue = "0"; } // *** }
20. november 2006 - 00:08
#21
Jepz !-)
20. november 2006 - 00:08
#22
-- og tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling