17. maj 2001 - 09:24
Der er
22 kommentarer og 2 løsninger
Sammenlægning af funktioner!
Hejsa! Jeg har en lang række funktioner i javascript der løbende laver udregninger - deriblandt nogle totaler. Er det muligt at addere to funktioner (totaler) uden at skulle definere en lang række variabler først?? Og hvordan gør man det så?? Et eksempel kunne være fortjeneste på salg (er udregnet ved at sige omsætning minus en række udgifter) lagt sammen med fortjenesten på leje (udregnet på samme måde) - disse to totaler skal tilsammen give den samlede fortjeneste i et tredje felt! Håber der er nogen der vil hjælpe (flere point kan tildeles (op til 100)).
Annonceindlæg fra Kingston Technology
Du mener vel ikke bare document.dinform.ditfelt.value=fortjeneste()+leje()+moms()-rabat(); eller hvad det nu skal være?
Hmmm - ved jeg egentlig ikke! Jeg har følgende funktioner: function gross1() { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.turn_real1.value); roy = parseInt(document.form1.royal_real1.value); stock = parseInt(document.form1.stock_real1.value); mark_ex = parseInt(document.form1.Ex_real1.value); mark_in = parseInt(document.form1.In_real1.value); gross = turn - roy - stock - mark_ex - mark_in; document.form1.gross_real1.value = gross; } denne function skal adderes med denne function: function gross5() { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.turn_real1a.value); roy = parseInt(document.form1.royal_real1a.value); stock = parseInt(document.form1.stock_real1a.value); mark_ex = parseInt(document.form1.markex_real1a.value); mark_in = parseInt(document.form1.markin_real1a.value); gross = turn - roy - stock - mark_ex - mark_in; document.form1.gross_real1a.value = gross; } I hvert fald hvis det er muligt!
Ja da. en funktion der returnerer en værdi kan bruges i et regnestykke præcis ligesom en variabel. <script language=\'javascript\'> function sinA ( radA ) { return Math.sin( radA +1 ); }; function cosA ( radA ) { return Math.cos( radA +1 ); }; alert ( \"dette skulle gerne give 1 : \" + Math.sqrt( sinA(2)*sinA(2) + cosA(2)*cosA(2) ) ); </script> mvh JakobA
Nemlig jakoba. Lav funktioner, der laver beregninger, men som ikke rører ved formens indhold. Så kan du nemlig bruge dem til flere ting!
jakoba: Det eksempel fattede jeg ikke en bønne af!!! *LOL* Kan du ikke prøve at lave det ud fra de to funktioner jeg har skrevet ovenfor??? *S*
function gross1() { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.turn_real1.value); roy = parseInt(document.form1.royal_real1.value); stock = parseInt(document.form1.stock_real1.value); mark_ex = parseInt(document.form1.Ex_real1.value); mark_in = parseInt(document.form1.In_real1.value); gross = turn - roy - stock - mark_ex - mark_in; return gross; //document.form1.gross_real1.value = gross; } function gross5() { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.turn_real1a.value); roy = parseInt(document.form1.royal_real1a.value); stock = parseInt(document.form1.stock_real1a.value); mark_ex = parseInt(document.form1.markex_real1a.value); mark_in = parseInt(document.form1.markin_real1a.value); gross = turn - roy - stock - mark_ex - mark_in; return gross() //document.form1.gross_real1a.value = gross; } document.form1.gross_whatever.value=gross5()+gross1();
Uuuuuuuuuuups. Den sidste return gross() skal være return gross;
erik: Jamen hvis jeg sætter // foran så kan den vel ikke ikke finde ud af hvor den skal skrive den første total???
Ah, skal den gøre begge dele?? Så kan du jo: document.form1.gross_real1a.value = gross; return gross;
Ja - det fandt jeg ud af, men den vil ikke vise den samlede fortjeneste i det tredje felt!!! Normalt skal man jo i feltet angive hvilken function der skal vises, men det ser jo ikke ud til at det er tilfældet her!!?? Hvordan får jeg det vist i det sidste felt???
Kan man ikke samle de to første functions i en tredje function?
Vis os lige noget kode....
ok - den eneste forskel på dine \"gross..\" funktioner er om de skal aflæse xxxx_real1, xxxx_budg1, osv. Jo, den kan du tage med som parameter til én gross-funktion, så du ikke behøver have så mange. Er det korrekt opfattet?
Ja - det er netop den eneste forskel!
Jeg tager lige en enkelt: function grossx(what) { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.elements[\"turn_\"+what].value); roy = parseInt(document.form1.elements[\"royal_real2\"+what].value); stock = parseInt(document.form1.elements[\"stock_real2\"+what].value); mark_ex = parseInt(document.form1.elements[\"Ex_real2\"+what].value); mark_in = parseInt(document.form1.elements[\"In_real2\"+what].value); gross = turn - roy - stock - mark_ex - mark_in; document.form1.gross_real2.value = gross; } og så kalde den med grossx(\"real2\");
Øh, der er et par _real2 for meget i 4 af linierne. Kig på linien med turn= ... for den er korrekt
I hvilken af funktionerne????
I min: function grossx(what) { var turn; var roy; var stock; var mark_ex; var mark_in; turn = parseInt(document.form1.elements[\"turn_\"+what].value); roy = parseInt(document.form1.elements[\"royal_\"+what].value); stock = parseInt(document.form1.elements[\"stock_\"+what].value); mark_ex = parseInt(document.form1.elements[\"Ex_\"+what].value); mark_in = parseInt(document.form1.elements[\"In_\"+what].value); gross = turn - roy - stock - mark_ex - mark_in; document.form1.gross_real2.value = gross; }
Det forstår jeg ikke!!!????? De indeholder vel kun de felter der skal bruges til udregningen!!??
Øhm, jeg tror ikke vi forstår hinanden .... kan du præcisere hvad du vil vide? Sidste linie skulle være: document.form1.elements[\"gross\"+what].value = gross;
Jamen - det er der da også!!! Jeg kan ikke se hvad der skulle være galt!!?? Det er derfor jeg er forvirret!!! Den sidste linie (som jeg forstår det) angiver jo hvor den skal skrive resultatet af min udregning - er det ikke korrekt!!?? Det mener jeg også mine funktioner gør nu!
oooog, så mangler der lige en return gross; som sidste linie i funktionen.
Ja - på de fleste af dem.....men vil godt lige have den første til at virke før jeg laver samme nummer på resten! *S* Det vil sige, at det er gross1() og gross5(), der skal være return gross på, men skal der også være det på grosst1()????
Vi tilbyder markedets bedste kurser inden for webudvikling