08. maj 2004 - 11:06
Der er
15 kommentarer og 1 løsning
Fra til tid i inputbox
Jeg har lavet følgende, det skal beregne antal minutter mellem frakl og tilkl, men det virker ikke, nogen forslag ? <script type="text/JavaScript"> function calc(ObjForm) { p1 = ObjForm.Frakl.value; p2 = ObjForm.Tilkl.value; ObjForm.AntalTimer.value = <%=datediff("n",p1,p2)%>; } </script> <table><tr> <td width=50><input type="text" name="Frakl"></td> <td width=50><input type="text" name="Tilkl" onblur="calc(this.form)"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly></td> </tr> </table> </form>
Annonceindlæg fra SoftwareOne
Slettet bruger
08. maj 2004 - 11:13
#1
det kan du ikke med asp, da det er serverside (det bliver eksekveret på serveren).. du kan derimod gøre det med javascript. <script type="text/JavaScript"> function calc(ObjForm) { p1 = ObjForm.Frakl.value; p2 = ObjForm.Tilkl.value; ObjForm.AntalTimer.value = p2 - p1; } </script> <table><tr> <td width=50><input type="text" name="Frakl"></td> <td width=50><input type="text" name="Tilkl" onblur="calc(this.form)"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly></td> </tr> </table> </form>
Slettet bruger
08. maj 2004 - 11:22
#2
jeg har rettet i det, så det er kommet til at virke: <script type="text/JavaScript"> function calc(ObjForm) { var p1,p2; p1 = document.getElementById("Frakl").value; p2 = document.getElementById("Tilkl").value; document.getElementById("AntalTimer").value = p2 - p1; } </script> <form> <table><tr> <td width=50><input type="text" name="Frakl" onblur="calc();"></td> <td width=50><input type="text" name="Tilkl" onblur="calc();"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly></td> </tr> </table> </form> så skal du have nogle dato-handlere.. ved ikke, hvordan du har tænkt dig at skrive klokkesletne...
Slettet bruger
08. maj 2004 - 11:26
#3
alternativt kan du få siden til at submitte: <form method='post'> <table><tr> <td width=50><input type="text" name="Frakl" value='<%=request.form("Frakl")%>' onblur="this.form.submit();"></td> <td width=50><input type="text" name="Tilkl" value='<%=request.form("Tilkl")%>' onblur="this.form.submit();"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly value='<%=datediff("n",request.form("Frakl"),request.form("Tilkl"))%>'></td> </tr> </table> </form>
Tak for et hurtigt svar, men kunne godt tænke mig at formatet på frakl og tilkl var tt:mm, det var derfor at jeg forsøgte med datediff kommandoen. ellers vil 1630-0745 blive helt ude i skoven
Slettet bruger
08. maj 2004 - 11:49
#5
dette script går ud fra, at det timetal til venstre er før det til højre.. hvis der f.eks. sår 1000 til venste, og der står 0900 til højre, vil den skrive 23 (timer).. <script type="text/JavaScript"> function calc(ObjForm) { var p1,p2,result; p1 = document.getElementById("Frakl").value; p2 = document.getElementById("Tilkl").value; result = p2 - p1; if(result < 0){ result = result + 2400; } result = Math.floor(result / 100); document.getElementById("AntalTimer").value = result; } </script> <form> <table><tr> <td width=50><input type="text" name="Frakl" onblur="calc();"></td> <td width=50><input type="text" name="Tilkl" onblur="calc();"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly></td> </tr> </table> </form>
Den giver bare 0 :( og den forrige virker slet ikke :'(
Slettet bruger
08. maj 2004 - 12:00
#7
virker fint her.. du skal huske at klokkeslettene er mmss..
Slettet bruger
08. maj 2004 - 12:01
#8
jeg smutter.. men du kan jo altid spørge om noget.. kan svare på det i morgen, hvis ikke andre skriver..
Slettet bruger
09. maj 2004 - 14:26
#10
fik du det til at virke??
Nej Desværre, men jeg gik lige uden om der var nok andet at gå igang med. Men problemet er stadig. Hvis jeg vil taste fra 0745 til 1630 hvordan kan jeg så i javascript lave en beregning på den mellemliggende tid i VB ville jeg skrive noget i stil med: FraTim = left(request.form("Frakl"),2) FraMin = right(request.form("Frakl"),2) TilTim = left(request.form("Tilkl"),2) TilMin = right(request.form("Tilkl"),2) ResTim = cDbl(TilTim)-cDbl(FraTim) ResTim = ResTim + (((cDbl(TilMin)/60)*100)-((cDbl(FraMin)/60)*100)/100)
Slettet bruger
10. maj 2004 - 11:00
#12
det virker her med min kommentar fra 08/05-2004 11:49:36.. er det den, du bruger??
Hej igen Jeg kan ikke forstå, hvordan du kan få et decimaltal ud af din math.floor kommando. Afrunder den ikke til heltal ?
Slettet bruger
18. maj 2004 - 17:09
#14
ok.. troede du ville have hele antal timer.. så skal Math.floor bare fjernes sådan her.. <script type="text/JavaScript"> function calc(ObjForm) { var p1,p2,result; p1 = document.getElementById("Frakl").value; p2 = document.getElementById("Tilkl").value; result = p2 - p1; if(result < 0){ result = result + 2400; } result = result / 100; document.getElementById("AntalTimer").value = result; } </script> <form> <table><tr> <td width=50><input type="text" name="Frakl" onblur="calc();"></td> <td width=50><input type="text" name="Tilkl" onblur="calc();"></td> </tr> <tr> <td><input type="text" name="AntalTimer" readonly></td> </tr> </table> </form>
Hej igen Jeg tror du misforstår mig. Jeg vil have at en ½ time dvs 30 min skal laves om til 0,5 time osv. Jeg har løst problemet på denne måde (og det kan nok gøres mere elegant :-) : function calc() { var p1,p2,t1,t2,m1,m2,result,res1,res2 p1 = document.getElementById("Frakl").value; p2 = document.getElementById("Tilkl").value; if (p1.indexOf(":")!=-1 || p2.indexOf(":")!=-1) { alert("Tid skal indtastes som TTMM"); document.getElementById("Frakl").value=""; document.getElementById("Tilkl").value=""; } else { if(p2>p1) { t1=p1.substring(0,2); m1=p1.substring(2,4); t2=p2.substring(0,2); m2=p2.substring(2,4); result=t2-t1; res2=((m2/60)*100); res1=((m1/60)*100); result = result + ((res2 - res1)/100); document.getElementById("AntalTimer").value = result; } } }
06. oktober 2004 - 23:10
#16
Lukker
Kurser inden for grundlæggende programmering