25. marts 2003 - 15:10
Der er
22 kommentarer og 1 løsning
udregning med checkbox
Hvordan gør jeg sådan at når en tjekbox er afkrydset indgår det i en beregning har nu følgende. <script type="text/javascript" language="JavaScript"><!-- function beregn( frmObj ) { var t1 = parseFloat( frmObj.tal1.value, 10); var t2 = parseFloat( frmObj.tal2.value, 10); frmObj.Pris.value = t1-t2; }; //end beregn( HTML Form objekt ) // --></script> tal1 er check boxen men den bliver regnet med ligemeget hva, og det skal den ikke.
Annonceindlæg fra Computerworld
25. marts 2003 - 15:19
#1
sådan måske ? <script type="text/javascript" language="JavaScript"><!-- function beregn( frmObj ) { if (frmObj.tal1.checked == 1) { var t1 = parseFloat( frmObj.tal1.value, 10);} if (frmObj.tal2.checked == 1) { var t2 = parseFloat( frmObj.tal2.value, 10);} frmObj.Pris.value = t1-t2; }; -grunken
Slettet bruger
25. marts 2003 - 15:46
#2
Hvordan skal beregningen være, hvis tal1 ikke er valgt?
25. marts 2003 - 15:58
#3
kun tal1 er checkbox men det er muligt der kommer flere. ja så skal den regne ud fra andre felt, altså dvs 0 hvis ikke valgt
Slettet bruger
25. marts 2003 - 16:27
#4
function beregn(frm) { t = parseInt(frm.tal2.value, 10); t -= (frm.tal1.checked) ? frm.tal1.value : 0; frmObj.Pris.value = t; }
Slettet bruger
25. marts 2003 - 16:27
#5
Hov: function beregn(frm) { t = parseInt(frm.tal2.value, 10); t -= (frm.tal1.checked) ? parseInt(frm.tal1.value) : 0; frmObj.Pris.value = t; }
Slettet bruger
25. marts 2003 - 16:27
#6
Og, der skal lige stå ,10 i den parseInt...
25. marts 2003 - 19:36
#7
<form> <script type="text/javascript" language="JavaScript"><!-- function beregn(frm) { t = parseInt(frm.tal2.value, 10); t -= (frm.tal1.checked) ? parseInt(frm.tal1.value) : 0; var t2 = parseFloat( frmObj.tal2.value, 10);} frmObj.Pris.value = t-t2; } // --></script> <table cellspacing="0" cellpadding="0" width="151" height="*"> <tr align="center"> <td width="33" align="left">Tal 1</td> <td width="10"></td> <td align="center" width="108"><div align="left"><p><input type="checkbox" name="tal1" value="10"></td> </tr> <tr align="center"> <td width="33" align="left">Tal 2</td> <td width="10"><div align="center"><center><p>:</td> <td align="center" width="108"><div align="left"><p><input name="tal2" value onblur="beregn(this.form);" size="9"></td> </tr> <tr align="center"> <td width="33" align="left">I alt</td> <td width="10"><div align="center"><center><p>:</td> <td align="center" width="108"><div align="left"><p><input name="Pris" value onfocus="this.blur();" type="text" class="but1" size="9" maxlength="9"></td> </tr> </table> </form> Hvad sker der.
25. marts 2003 - 19:40
#8
<script type="text/javascript" language="JavaScript"><!-- function beregn(frm) { t2 = parseInt(frm.tal2.value, 10); t1 = (frm.tal1.checked) ? parseInt(frm.tal1.value) : 0; frm.Pris.value = t2-t1; } // --></script> <table cellspacing="0" cellpadding="0" width="151" height="*"> <tr align="center"> <td width="33" align="left">Tal 1</td> <td width="10"></td> <td align="center" width="108"><div align="left"><p><input type="checkbox" name="tal1" value="10"></td> </tr> <tr align="center"> <td width="33" align="left">Tal 2</td> <td width="10"><div align="center"><center><p>:</td> <td align="center" width="108"><div align="left"><p><input name="tal2" value onblur="beregn(this.form);" size="9"></td> </tr> <tr align="center"> <td width="33" align="left">I alt</td> <td width="10"><div align="center"><center><p>:</td> <td align="center" width="108"><div align="left"><p><input name="Pris" value onfocus="this.blur();" type="text" class="but1" size="9" maxlength="9"></td> </tr> </table> </form> sådan nu udregner den når jeg skriver noget i tal2 men ikke før, den skal jo gerne skrive 10 når jeg kun krydser tal1 af.
Slettet bruger
26. marts 2003 - 16:13
#9
Hvorfor skal der stå 10, når man krydser af? Ville du ikke netop trække 10 fra? Men du bliver altså nødt til at gøre, som jeg siger! :) function beregn(frm) { t = parseInt(frm.tal2.value, 10); t -= (frm.tal1.checked) ? parseInt(frm.tal1.value, 10) : 0; frmObj.Pris.value = t; }
26. marts 2003 - 17:07
#10
Jamen på et tidspunkt skal den udvides med flere felter og afkrydsnings boks og skal så vise et helt beløb efter afkrydsning af nogle felter.
Slettet bruger
26. marts 2003 - 17:10
#11
Jeg tror, du bliver nødt til at forklare helt grundigt, hvad det er, du vil. Ellers kan jeg ikke følge med! :)
26. marts 2003 - 17:13
#12
Jamen jeg vil gerne have nogle checkboks og nogle input felter som har forskellige værdier, hvis man krydser eks en checkbox med value 19 af og en til med 11 og i et felt skriver 100 så skal den i en tekstboks skrive 130
Slettet bruger
26. marts 2003 - 17:18
#13
Har du evt. mulighed for at give alle formfelter, der skal medregnes i regnskabet, et fælles start/slut-bogstav i name?
26. marts 2003 - 17:21
#14
Ja
Slettet bruger
26. marts 2003 - 17:29
#15
OK. Scriptet bliver muligvis lidt krævende for computeren, specielt hvis der er mange formfelter. <script> function laegSammen(frm) { t = 0; for (i = 0; i < frm.elements.length; i++) { if (frm.elements[i].name.indexOf("x") == 0) t += (frm.elements[i].type != "checkbox" || frm.elements[i].checked) ? parseInt(frm.elements[i].value, 10) : 0; } frm.ialt.value = t; } </script> Ved dine felter: <input type="checkbox" value="10" name="x_check" onClick="laegSammen(this.form);"> <input type="text" value="20" name="x_text" onKeyUp="laegSammen(this.form);"> Og: <input type="text" value="0" name="ialt" readonly>
Slettet bruger
27. marts 2003 - 16:49
#16
Hov: function laegSammen(frm) { t = 0; for (i = 0; i < frm.elements.length; i++) { if (frm.elements[i].name.indexOf("x") == 0) t += (frm.elements[i].type != "checkbox" || frm.elements[i].checked) ? ((frm.elements[i].value == "" || isNaN(frm.elements[i].value)) ? 0 : parseInt(frm.elements[i].value, 10)) : 0; } frm.ialt.value = t; }
27. marts 2003 - 22:11
#17
den melder nogle fejl. den ser nu sådan ud <script> function laegSammen(frm) { t = 0; for (i = 0; i < frm.elements.length; i++) { if (frm.elements[i].name.indexOf("x") == 0) t += (frm.elements[i].type != "checkbox" || frm.elements[i].checked) ? ((frm.elements[i].value == "" || isNaN(frm.elements[i].value)) ? 0 : parseInt(frm.elements[i].value, 10)) : 0; } frm.ialt.value = t; } </script> <html> <head> <title></title> </head> <body> <p>Ved dine felter: <input type="checkbox" value="10" name="x_check" onClick="laegSammen(this.form);"> <input type="text" value="20" name="x_text" onKeyUp="laegSammen(this.form);" size="20"> Og: <input type="text" value="0" name="ialt" readonly size="20"> </p> </body> </html>
Slettet bruger
28. marts 2003 - 15:22
#18
Du har glemt at putte form-koder rundt om.
29. marts 2003 - 12:28
#19
er prøvet
Slettet bruger
29. marts 2003 - 12:53
#20
Det virker for mig, så lad mig se et link.
29. marts 2003 - 16:52
#21
ikke uploaded kun i frontpage
Slettet bruger
30. marts 2003 - 08:54
#22
Dette virker fint: <html> <head> <script> function laegSammen(frm) { t = 0; for (i = 0; i < frm.elements.length; i++) { if (frm.elements[i].name.indexOf("x") == 0) t += (frm.elements[i].type != "checkbox" || frm.elements[i].checked) ? ((frm.elements[i].value == "" || isNaN(frm.elements[i].value)) ? 0 : parseInt(frm.elements[i].value, 10)) : 0; } frm.ialt.value = t; } </script> </head> <body> <form> <input type="checkbox" value="10" name="x_check" onClick="laegSammen(this.form);"><br> <input type="text" value="0" name="x_text" onKeyUp="laegSammen(this.form);"><br> <input type="text" value="0" name="ialt" readonly> </form> </body> </html>
30. marts 2003 - 21:46
#23
Ok
Vi tilbyder markedets bedste kurser inden for webudvikling