25. juli 2004 - 14:18
Der er
6 kommentarer og 1 løsning
sammenlægning af flere felter og overføre dem til et ialt felt
Hejsa! Har en lille form hvor man skal indtaste nogle oplysninger om udgifter vedr. møde aktivitet formen er : <form id="moedeafregning_form" action="#" method="post" name="moedeafregning_form"> <table width="550" border="0" cellspacing="0" cellpadding="2"> <tr> <td class="greybg" colspan="2" align="center" valign="top" width="546"><span class="redtxt"><b>Udgiftsopgørelse</b></span></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg1" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr1" size="17" onkeyup="beregn()"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg2" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr2" size="17"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg3" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr3" size="17"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg4" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr4" size="17"></td> </tr> <tr> <td valign="top" width="400">Portoudgifter i forbindelse med mødet</td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="krporto" size="17"></td> </tr> <tr> <td class="greybg" valign="top" width="400">Ialt</td> <td class="greybg" valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="krialt" disabled size="17"></td> </tr> </table> ..... Jeg vil så gernen have den til at når man indtaster noget i feltet "kr1" så overføres det automatisk til feltet "krialt" (evt. først når feltet "kr1" forlades... og hvis man så har flere udgifter og skal indtaste noget i de øvrige "kr" felter (2,3,4,5) så skal alt dette lægges sammen ov vises i "krialt" feltet Nogen der kan være behjælpelig med en sådan funktion ?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Den validerer ikke absolut, men fanger de almindeligste fejl, ligesom den udskifter et dansk decimal-komma med et decimal-punktum, som er nødvendigt i javascript !-) <form id="moedeafregning_form" action="#" method="post" name="moedeafregning_form"> <table width="550" border="0" cellspacing="0" cellpadding="2"> <tr> <td class="greybg" colspan="2" align="center" valign="top" width="546"><span class="redtxt"><b>Udgiftsopgørelse</b></span></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg1" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr1" size="17" onchange="beregn(this.form)"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg2" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr2" size="17" onchange="beregn(this.form)"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg3" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr3" size="17" onchange="beregn(this.form)"></td> </tr> <tr> <td valign="top" width="400"><input class="txtfield_under" type="text" name="udg4" size="64"></td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="kr4" size="17" onchange="beregn(this.form)"></td> </tr> <tr> <td valign="top" width="400">Portoudgifter i forbindelse med mødet</td> <td valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="krporto" size="17" onchange="beregn(this.form)"></td> </tr> <tr> <td class="greybg" valign="top" width="400">Ialt</td> <td class="greybg" valign="top" width="142">Kr. <input class="txtfield_under" type="text" name="krialt" disabled size="17"></td> </tr> </table> </form> <script type="text/javascript"> function beregn(f){ var ialt = 0,reg = /^\d[\d\.\,]+$/; for(i=1;5>i;i++){ flt = f.elements["kr"+i]; if(reg.test(flt.value)){ ialt += +(flt.value.replace(/,/g,".")); } } flt = f.elements["krporto"]; if(reg.test(flt.value)){ ialt += +(flt.value.replace(/,/g,".")); } f.krialt.value = ialt; } </script>
det ser ud til at virke... men kan man få den til ALTID at sætte 2 dicemaler på "krialt" feltet, og ændre . til , ? samt gøre brugeren opmærksom på at der er indtastet forkert - hvis der indtastes andet end 1234567890, for som den er nu hvis der skrives et "e" i et af felterne så stopper beregningen... flere point hvis det kan laves :-)
Nej beregningen stopper ikke, det felt springes bare over ... -- men vi kan da godt få den til at alerte, og også sætte decimaler på med komma: <script type="text/javascript"> function beregn(f){ var ialt = 0,reg = /^\d([\d\.\,]+)?$|^$/; for(i=1;5>i;i++){ flt = f.elements["kr"+i]; if(reg.test(flt.value)){ ialt += +(flt.value.replace(/,/g,".")); }else{ alert('Fejl i beløbsangivelsen.'+flt.name); flt.select(); flt.focus(); return false; } } flt = f.elements["krporto"]; if(reg.test(flt.value)){ ialt += +(flt.value.replace(/,/g,".")); } ialt *= 100; ialt = "" + Math.round(ialt); while(3>ialt.length)ialt = "0" + ialt; f.krialt.value = ialt.replace(/(\d{2})$/,",$1"); } </script>
-- og du skal selvfølgelig fjerne +flt.name, når du sætter den i produktion ...
Vi tilbyder markedets bedste kurser inden for webudvikling