Avatar billede lasserasch Juniormester
21. marts 2006 - 20:03 Der er 7 kommentarer og
1 løsning

beregning af værdi til kollone ud fra 2 andre

Hejsa. Jeg har en form med 3 kolloner. En indkøbspris, en salgspris og en 3. som skal indeholde et provitionsbeløb.

Provitionsbeløbet er 25% af fortjenesten.

Altså 3 = 0,25 * (kol2 - kol1)

Findes der en måde hvorpå man kan få udregnet værdien til kollone 3 uden at skulle submitte formen til et script som laver en udregning? Altså kan det lade sig gøre at lave udregningen ud fra de 2 indtastede beløb, uden at brugeren skal klikke på noget! F.eks. at den udregner beløbet så snart man tabulerer væk fra et af de 2 felter, og disse 2 felter begge indeholder en tal værdi???


Håber en kan hjælpe!


/Lasse
Avatar billede roenving Novice
22. marts 2006 - 02:59 #1
Sagtens, f.eks.

<script type="text/javascript">
function beregnProvision(elm){
  var num = elm.name.replace(/^.*?(\d+)$/,"$1"),f = elm.form;
  if(f.elements["koeb" + num].value && elm.value){
    f.elements["pro"+num].value = (elm.value - f.elements["koeb" + num].value) * 0.25;
  }
}
</script>

<form>
<table>
  <tr>
    <th>Købspris</td>
    <th>Salgspris</td>
    <th>Provision</td>
  </tr>
  <tr>
    <td><input name="koeb1" value="0"></td>
    <td><input name="salg1" value="0" onchange="beregnProvision(this);"></td>
    <td><input name="pro1" value="0"></td>
  </tr>
  <tr>
    <td><input name="koeb2" value="0"></td>
    <td><input name="salg2" value="0" onchange="beregnProvision(this);"></td>
    <td><input name="pro2" value="0"></td>
  </tr>
  <tr>
    <td colspan="3"><input type="submit">
  </tr>
</table>
</form>
Avatar billede roenving Novice
22. marts 2006 - 03:00 #2
Hrm ...

  <tr>
    <td colspan="3"><input type="submit"></td>
  </tr>

-- selvfølgelig !-)
Avatar billede lasserasch Juniormester
22. marts 2006 - 14:31 #3
Okay. Jeg prøver så lige at forklare min opsætning! Jeg er ikke så hård det at lave de javascripts der...

Mine text inputs ser således ud :




--------------


    <table valign="top">
    <tr valign="top">
    <td class="tekst" valign="top">Harware Salg - Hvilket?</td>
    <td class="tekst5" valign="top">Antal</td>
    <td class="tekst5" valign="top">Kostpris ex.moms</td>
    <td class="tekst5" valign="top">Salgspris ex. moms</td>
    <td class="tekst5" valign="top">Fragt ex. moms</td>
    <% if session("bruger") = "Lasse Rasch" then %>
    <td class="tekst5" valign="top">Løn Tillæg</td>
    <% end if %>
    </tr>



    <tr valign="top">
    <td class="tekst" valign="top"><input type="text" name="hw_1_navn" value="<%=rs2("hw_1_navn")%>"  class="input2"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_1_antal" value="<%=rs2("hw_1_antal")%>" onChange="CalculateTotal(this.form)" class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_1_kostpris" value="<%=rs2("hw_1_kostpris")%>" onChange="CalculateTotal(this.form)"  class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_1_salgspris" value="<%=rs2("hw_1_salgspris")%>" onChange="CalculateTotal(this.form)" class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_1_fragt" value="<%=rs2("hw_1_fragt")%>" class="input6"></td>
    <% if session("bruger") = "Lasse Rasch" then %>
    <td class="tekst5" valign="top"><input type="text" id="maxcharfield" name="hw_1_lon" value="<%=rs2("hw_1_lon")%>" class="input6"></td>
    <td><INPUT TYPE=TEXT NAME=TOTAL SIZE=10 onFocus="this.form.elements[0].focus()"> </td>


    <% end if %>
    </tr>


   
    <tr valign="top">
    <td class="tekst" valign="top"><input type="text" name="hw_2_navn" value="<%=rs2("hw_2_navn")%>" class="input2"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_2_antal" value="<%=rs2("hw_2_antal")%>" class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_2_kostpris" value="<%=rs2("hw_2_kostpris")%>" class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_2_salgspris" value="<%=rs2("hw_2_salgspris")%>" class="input6"></td>
    <td class="tekst5" valign="top"><input type="text" name="hw_2_fragt" value="<%=rs2("hw_2_fragt")%>" class="input6"></td>
    <% if session("bruger") = "Lasse Rasch" then %>
    <td class="tekst5" valign="top"><input type="text" name="hw_2_lon" value="<%=rs2("hw_2_lon")%>" class="input6"></td>
    <% end if %>
    </tr>
</table>

--------------


Jeg har i alt 9 rækker og ikke kun 2 som står her!

Hvordan skal scriptet så se ud for at fungere sammen med disse kollonenavne?


Smid et svar, så får du points!


/Lasse
Avatar billede lasserasch Juniormester
22. marts 2006 - 14:32 #4
<INPUT TYPE=TEXT NAME=TOTAL SIZE=10 onFocus="this.form.elements[0].focus()">

Denne skal du bare se bort fra! Det var noget test jeg lavede! fik jeg ikke lige slettet inden! Sorry...
Avatar billede roenving Novice
22. marts 2006 - 15:40 #5
<td class="tekst5" valign="top"><input type="text" name="hw_1_salgspris" value="<%=rs2("hw_1_salgspris")%>" onChange="CalculateTotal(this.form);CalculateProvision(this);" class="input6"></td>

-- PS. linjen indeholdt en fatal tavetosse, en manglende parantes-slut !-)

-- og funktionen skal så se således ud:

<script type="text/javascript">
function CalculateProvision(elm){
  var num = elm.name.replace(/^.*?_(\d+)_.*$/,"$1"),f = elm.form;
  if(f.elements["hw_" + num + "_kostpris"].value && elm.value){
    f.elements["hw_" + num + "_lon"].value = (elm.value - f.elements["hw_" + num + "_kostpris"].value) * 0.25;
  }
}
</script>
Avatar billede lasserasch Juniormester
02. oktober 2007 - 12:07 #6
smid svar for points!

/Lasse
Avatar billede roenving Novice
03. oktober 2007 - 13:15 #7
Oki '-)
Avatar billede roenving Novice
03. oktober 2007 - 13:32 #8
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester