Witam,
Mam pewien problem co do dokonania pewnych obliczeń w locie. Sytuacja przedstawia sie następująco: mamy sumę powiedzmy 5000 którą trzeba rozdzielić między kilka pól, właściwie liczba pól może być różna. Wymyśliłem sobie to tak:
pole1 - przechowuje informacje ile pieniędzy mamy do rozdzielenia np. nasze 5000
pole2 - przechowuje ile pieniędzy już rozdzielono
pole3 - przechowuje sumę z pola na które kliknęliśmy
Kod przedstawia się następująco:
<script type="text/javascript"> function rozdzial(suma, rozdzielono, doRozdzialu) {
if(suma.value == '')
amount = 0;
else
amount = parseFloat(suma.value);
razem = amount + parseFloat(document.getElementById(rozdzielono).value);
if(razem <= doRozdzialu) {
return true;
} else {
suma.value = parseFloat(document.getElementById('tmp').value);
alert('Przekroczono sumę do rozdzielenia.');
}
}
function move(value, id) {
document.getElementById(id).value = value;
}
function roznica(poZmianie, przedZmiana, dodajDo) {
if(poZmianie.value == '')
poZ = 0;
else
poZ = parseFloat(poZmianie.value);
if(document.getElementById(przedZmiana).value == '')
przedZ = 0;
else
przedZ = parseFloat(document.getElementById(przedZmiana).value);
wynik = poZ - przedZ;
document.getElementById(dodajDo).value = parseFloat(document.getElementById(dodajDo).value) + parseFloat(wynik);
return true;
}
do rozdzienia:
<input type="text" name="sum" value="5000" />rozdzielono:
<input type="text" name="rozdzielono" id="rozdzielono" value="0" />tmp:
<input type="text" id="tmp" value="0" />
<td class="amount">Element 1
</td> <td><input type="text" name="" style="width: 100px;" onmouseup="move(this.value, 'tmp')" onchange="roznica(this, 'tmp', 'rozdzielono')" onkeyup="rozdzial(this, 'rozdzielono', '5000')" value="0" /></td> <td class="amount">Element 2
</td> <td><input type="text" name="" style="width: 100px;" onmouseup="move(this.value, 'tmp')" onchange="roznica(this, 'tmp', 'rozdzielono')" onkeyup="rozdzial(this, 'rozdzielono', '5000')" value="0" /></td> <td class="amount">Element 3
</td> <td><input type="text" name="" style="width: 100px;" onmouseup="move(this.value, 'tmp')" onchange="roznica(this, 'tmp', 'rozdzielono')" onkeyup="rozdzial(this, 'rozdzielono', '5000')" value="0" /></td>
Zasadniczo działanie jest prawidłowe jednak występuje problem gdy rozdzielona zostanie pełna kwota i chcę zmodyfikować któryś element.
Ten post edytował porady-it.pl 13.05.2008, 12:51:15