Zsumowanie wartości z pól input

0

Witam,

Pełny kod: http://jsbin.com/eveROnE/1/edit
Mam na stronie formularz, który mi mnoży wartości z pięciu różnych wierszy, przykładowo jeden wygląda tak:

 <tr>
<td><input type="text" name="opis_uslugi" size =90></td>
<td><input type="number2" name="INPUT1" id="input" onchange="calculate();"></td>
<td><input type="number2" name="INPUT2" id="input" onchange="calculate();"></td>
<td><input type="number2" name="OUTPUT1" id="output"  readonly="readonly" ></td>  
</tr> 

takich wierszy jest pięć.

funkcja mnożąca ma następującą postać:

function calculate() {
var USERINPUT1 = document.f1.INPUT1.value;
var USERINPUT2 = document.f1.INPUT2.value;
var CALC1 = USERINPUT1*USERINPUT2;
document.f1.OUTPUT1.value = CALC1;
}

Takich funkcji również jest pięć.

Do tego momentu mi wszystko działa, mnoży, uzupełnia dane.
Chce dalej, aby pola wynikowe z mnożenia były sumowane do jednego wspólnego pola:

 <td><input type="number2" name="razem" id="suma" size=10 onchange="sum()" readonly="readonly"> </td></tr> 

Funkcja odpowiadająca za to sum() ma postać:

 
function sum() {
var USEROUTPUT1 = document.f1.OUTPUT1.value;
var USEROUTPUT2 = document.f1.OUTPUT1_1.value;
var USEROUTPUT3 = document.f1.OUTPUT1_2.value;
var USEROUTPUT4 = document.f1.OUTPUT1_3.value;
var USEROUTPUT5 = document.f1.OUTPUT1_4.value
var CALC = parseInt(USEROUTPUT1) + parseInt(USEROUTPUT2) + parseInt(USEROUTPUT3) + parseInt(USEROUTPUT4) + parseInt(USEROUTPUT5);
document.f1.razem.value = CALC;
}

Niestety ona mi nie działa.
Czytałem dużo o zdarzeniach, ale niestety nic mi nie przychodzi do głowy, a podejrzewam, że błąd jest jakiś nieduży...

Z góry dziękuje za wszystkie odpowiedzi!

0

pole jest readonly, więc ciężko żeby wywołać na tym change. zauważ, że podmieniając wartości przez js pole.value="costam" nie wywołuje się zdarzenie change. ale możesz to zasymulować robiąc po prostu pole.change()

0

no spoko. rozumiem, ale poprzednie pola OUTPUT tez mam wszystkie readonly i function calculate() dziala...
hmm.. wywalilem readolny i dalej jest to samo ;/

0

wrzuć cały kod na jsbin.com, tak żeby dało się po tym poklikać, bo pierwszy przykład dałeś cały, drugi (problematyczny) niekompletny, więc ciężko zgadywać co zepsułeś.

a wklejając kod na forum używaj tagów <code> z nazwą języka, np. <code class="javascript">

0

Witam,

wkleiłem kod na http://jsbin.com/eveROnE/1/edit?html,output
Teraz widać, że nie uzupełnia się pole "Razem wartość Netto:"

0

ech... przez "cały kod" miałem na myśli "cały kod, który ma znaczenie dla problemu". za dużo tego (btw: po co Ci 2x doctype?), popraw proszę i wrzuć jeszcze raz

0

zrobiłem cos takiego:
http://jsbin.com/InikUDON/1/edit?html,output
Niestety po dorzuceniu kodu html nie działa to...
Wiem, że najpierw ładuje mi się skrypt, a potem formularz, wiec skrypt nie ma obiektów do których mógłby się podpiąć ;/ (sprawdzane w konsoli)

Wie ktoś jak to zmienić??

poprawiłem trochę kod html(znaczniki, doctype + wstępne formatowanie)

1

http://jsbin.com/InikUDON/4/

wystarczyło poprawić Twoją pomyłkę:

<script type="text/javascript" src="//code.jquery.com/jquery-1.7.2.min.js" /> <!-- to ŹLE! -->
<script type="text/javascript" src="//code.jquery.com/jquery-1.7.2.min.js"></script> <!-- to dobrze -->
0

wiem, wiem już.
Wczoraj wieczorem do tego doszedłem :)

Dzięki wielkie za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1