Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Suma dwóch inputów
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
TomASS
Witam. Mam sobie takie ło zwyłe dwa inputy (mam też trzeciego tongue.gif ) i teraz chciałbym mieć w jedym z tych trzech sume dwóch pozostałych:


czyli input3 = inpu1+inpu2;


robiłem to tak:

  1. onblur='javascript:form1.suma.value += eval(parseInt(this.value))


gdzie this, to jeden ze składników sumy....a suma to....suma biggrin.gif...gdy wykonuję to i np. input1 = 2 a input2 = 3 to sume mam 23:/ a nie 5 :/


Bardzo proszę o pomoc.
cim
ja zrobiłem to w oddzielnej funkcji:

Kod
function suma(){
var input1 = parseInt(document.forma.input1.value);
var input2 = parseInt(document.forma.input2.value);

var input3 = input1 + input2;
document.forma.input3.value = input3;
}


a w onblur wywołałem powyższą funkcje
TomASS
takie coś nie działa (błąd JS, nawet gdy funkcja suma() jest pusta) :/

  1. <script type="text/javascript" language="JavaScript">
  2. <!--
  3. function suma(){
  4. var input1 = parseInt(document.forma.i1.value);
  5. var input2 = parseInt(document.forma.i2.value);
  6.  
  7. var input3 = input1 + input2;
  8. document.forma.suma.value = input3;
  9. }
  10. //-->
  11.  
  12. <form action="1.html" name="forma">
  13. <input type="text" onBlur="suma()" name="suma"/>
  14. <input type="text" onBlur="suma()" name="i1"/>
  15. <input type="text" onBlur="suma()" name="i2"/>
  16. </form>


co jest?
FiDO
Zmien nazwe funkcji z suma na cos innego, z jakiejs niewiadomej mi przyczyny, ta nazwa jest zastrzezona, nie ma jej jednak na liscie zastrzezonych slow.

PS. Przenosze na Javascript
TomASS
Masz rację, że chodziło o zmianę nazwy smile.gif ale niestety funkcja nie działa w przypadku trzech inputów (a docelowo chciałbym 9)...chciałbym sumować te inputy, w których jest wpisana wartość liczbowa....kurcze trudna ta js :/


Albo bym chciał aby w jednym inpucie było takie coś = (input1*2,45 + input2*3,4 + input3*........) questionmark.gif Oczywiście, jeśli input jest pusty, to należy go traktować jako zero?

PS

Mam 9 takich inputów

Wielkie dzięki za odpoiwedź
cim
Cytat(TomASS @ 2004-08-13 21:46:53)
Albo bym chciał aby w jednym inpucie było takie coś  = (input1*2,45 + input2*3,4 + input3*........) questionmark.gif

a skąd bierzesz licze przez którą mnożysz zawartość intup`a:?: to jakaś dowolna czy może jest od czegoś zalerzna:?:

P.S. napisz dokładnie jaki skrypt potrzebujesz i jak ma działać to wtedy może ktoś napisze już cały a nie 3 z 9 input`ów etc...
TomASS
Okej. To mam tak:

- 8 inputów....nadajmy im nazwy produkt1,produkt2.......produkt3
- 1 input pt. suma_sztuk (disabled)
- 1 input pt. suma_opakowań (disabled)


I teraz mogę wpisywać sobie w inputy "produkty" liczby i chiałbym aby tak:
- gdy wpiszę w którymś z 8 inputów dowolną liczbę, to w "suma_sztuk" pokazuje mi się suma WSZYSTKICH ośmiu inputów (oczywiście nie muszę wszystkich wypełniać, wystarczy, że wypełnię jeden)
- w inputa suma_opakowań chciałbym mieć takie oto coś: input1*1 + input2*2 + input3*8+....+input8*2 (też oczywiście nie muszę wypełniać wszystkich inputów)

Chciałbym to w js....

Dzięki za pomoc
Pozdrawiam serdecznie
tumczasty
czy chodzi o coś mniej więcej takiego:
  1. <script type="text/javascript" language="JavaScript">
  2. <!--
  3. function suma(){
  4.  
  5. suma_sztuk=0; suma_opakowan=0;
  6. wspolcz=new Array(1,2,8,3,5,4,7,2); //wpisac odpowiednie liczby
  7. for(i=1;i<=8;i++) {
  8. liczba=parseInt('0'+document.forma['produkt'+i].value,10);
  9. suma_sztuk+=liczba;
  10. suma_opakowan+=liczba*wspolcz[i-1];
  11. }
  12.  
  13. document.forma.suma_sztuk.value = suma_sztuk;
  14. document.forma.suma_opakowan.value = suma_opakowan;
  15. }
  16. //-->
  17. </script>
  18.  
  19. <form action="1.html" name="forma">
  20. <input type="text" onBlur="suma()" name="produkt1"/>
  21. <input type="text" onBlur="suma()" name="produkt2"/>
  22. <input type="text" onBlur="suma()" name="produkt3"/>
  23. <input type="text" onBlur="suma()" name="produkt4"/>
  24. <input type="text" onBlur="suma()" name="produkt5"/>
  25. <input type="text" onBlur="suma()" name="produkt6"/>
  26. <input type="text" onBlur="suma()" name="produkt7"/>
  27. <input type="text" onBlur="suma()" name="produkt8"/>
  28. <input type="text" name="suma_sztuk"/>
  29. <input type="text" name="suma_opakowan"/>
  30. </form>

a problem z nazwą funkcji suma() był pewnie dlatego, że był też input o takiej samej nazwie --- [document.forma.]suma() nie ma sensu, stąd błąd
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.