Очистить форму перед расчетом

Рейтинг: 0Ответов: 1Опубликовано: 04.03.2015

Всем привет.

Есть форма, рассчитывает выгоду при найме персонала, но вот проблема в том, что если я уже рассчитал значения при, например, выбранном первом селекте, а потом опять сменил селект (там тип выплаты), то значения, котрые рассчитались в первом случае, остаются в форме.

Как их сбросить перед рассчетом?

<style>
.former {display:block;margin-bottom:15px;}
.former label {display:block;width:300px;float:left;}
</style>

<script lang="JavaScript">

function calculator(form) {

var sel = document.getElementById("types"); // Получаем наш список
var val = sel.options[sel.selectedIndex].value; // Получаем значение выделенного элемента (в нашем случае fruit2).

a = eval(form.a.value);

//b = eval(form.b.value);

if (val == 1) {
document.getElementById('calc').reset();
c = a/0.87; //Заработная плата начисленная
c = c.toFixed(2);

d = c*0.3; //Отчисления в пенсионнный фонд и ФСС
d = d.toFixed(2);

e = c*0.002; //ФСС по травматизму
e = e.toFixed(2);

f = a*0.005; //Комиссия банка
f = f.toFixed(2);

g = + (+c) + (+d)+ (+e)+ (+f); //Итого
g = g.toFixed(2);

o = g*0.85; //По договору аутсорсинга
o = o.toFixed(2);

p = g - o; //Экономия бюджета на 1 работника в мес
p = p.toFixed(2);

r = o*0.15; //Сумма единого налога к уменьшению
r = r.toFixed(2);

s = o*0.2; //Сумма налога на прибыль к уменьшению
s = s.toFixed(2);

form.c.value = c;
form.d.value = d;
form.e.value = e;
form.f.value = f;
form.g.value = g;
form.o.value = o;
form.p.value = p;
form.r.value = r;
form.s.value = s;
}

if (val == 2) {
document.getElementById('calc').reset();
    b = a*0.87; //Заработная плата начисленная
    b = b.toFixed(2);

    d = a*0.3; //Отчисления в пенсионнный фонд и ФСС
    d = d.toFixed(2);

    e = a*0.002; //ФСС по травматизму
    e = e.toFixed(2);

    f = b*0.005; //Комиссия банка
    f = f.toFixed(2);

    g = + (+a) + (+d)+ (+e)+ (+f); //Итого
    g = g.toFixed(2);

    o = g*0.85; //По договору аутсорсинга
    o = o.toFixed(2);

    p = g - o; //Экономия бюджета на 1 работника в мес
    p = p.toFixed(2);

    r = o*0.15; //Сумма единого налога к уменьшению
    r = r.toFixed(2);

    s = o*0.2; //Сумма налога на прибыль к уменьшению
    s = s.toFixed(2);

    form.b.value = b;
    form.d.value = d;
    form.e.value = e;
    form.f.value = f;
    form.g.value = g;
    form.o.value = o;
    form.p.value = p;
    form.r.value = r;
    form.s.value = s;
}

}

</script>

<form id="calc">
<div class="former">
<label>Выберие тип расчета заработной платы</label>
    <select id="types">
        <option value="1">По оплате на руки</option>
        <option value="2">По начисленной</option>
    </select>
</div>
<div class="former">
<label>Введите сумму
 <input type="text" name="a">
</div>

<input type="button" value="Рассчитать">

<input type="reset" value="Сброс"><br><br>
<div class="former">
<label>Заработная плата начисленная</label> <input type="text" name="c"> 
</div>
<div class="former">
<label>Заработная плата на руки</label> <input type="text" name="b">
</div>
<div class="former">
<label>Отчисления в пенсионнный фонд и ФСС</label> <input type="text" name="d"><br>
</div>
<div class="former">
<label>ФСС по травматизму</label> <input type="text" name="e"><br>
</div>
<div class="former">
<label>Комиссия банка</label> <input type="text" name="f"><br>
</div>
<div class="former">
<label>Итого</label> <input type="text" name="g"><br><br><br>
</div>
<div class="former">
<label>По договору аутсорсинга</label> <input type="text" name="o"><br>
</div>
<div class="former">
<label>По договору аутсорсинга</label> <input type="text" name="p"><br>
</div>
<div class="former">
<label>По договору аутсорсинга</label> <input type="text" name="r"><br>
</div>
<div class="former">
<label>По договору аутсорсинга</label> <input type="text" name="s"><br>

</div>
</form>

Ответы

▲ 1Принят

Можно, наверное, так:

…
<select id="types">
…
function changeTypes (e) {
    var pos = e.selectedIndex;
    e.form.reset();
    e.selectedIndex = pos;
}