dmx
Хранитель порядка
- Регистрация
- 22 Июн 2011
- Сообщения
- 715
- Реакции
- 708
- Автор темы
- #1
Вот JS и форма :
Так как я в JS 0, помогите подправить и добавить (хотя -бы частично
1. при выборе пятой стены калькулятор должен брать за основу ширину сруба(сейчас берет длину).
2. Фундамент-ростверковый -> если ДА, то : ((ширина х2)+(длинна х2)+пятая стена)) х 4500
3. рубленные фронтоны - > если ДА то: постоянное-3м(высота фронтона) х ширина сруба х2500
4. Обработка сруба антисептиком -> если ДА , то : колькулятор должен считать предыдущию квадратуру стен
(эта квадратура уже посчитана из предидущих пунктов) это х 2(так как обработка с 2-х сторон) и х60 рублей
тоесть: м2(общее)х2х60рублей
______________________________
могу даже заплатить 200 руб.
Код:
<SCRIPT LANGUAGE="JavaScript">
sum = 2500; //Цена за сруб 1м2
fr=2500; // цена за фронтон 1m3
vn=1500; // стоимость выноса
stena=2500; //стоимость 1м2 5 стены и перегородок
function getRadioGroupValue(radioGroupObj) // функция определения какой чекбокс выбран для установки сруба
{
for (var i=0; i < radioGroupObj.length; i++)
if (radioGroupObj[i].checked) return radioGroupObj[i].value;
return null;
}
function calculator(form) {//Функция подсчета
drob = "."; //для дроби
a = eval(form.a.value+drob+form.aa.value); //Присваем a значение из первого поля a (длина) и значение дробной части аа
c = eval(form.b.value+drob+form.bb.value); //Присваем значение из второго поля \ (ширина) и значение дробной части
fm = eval(form.Fm.value+drob+form.Fmm.value); //Присваем a значение из первого поля перегородки дополнительные и значение дробной части перегородки
b = 3; //высота
z=0;// значение количества фронтонов
n=4;// значение высоты фронтана
v=0;// значение количества выносов
var st = getRadioGroupValue(document.radioForm.topic2); // переменная да или нет для пятой стены
d = (2*(a+c))*b*sum+((c*z*n*fr)/2)+(v*vn)+(stena*b*fm); //Присваем с значение плошади b и умножаем на стоимость 1м2
stena_5=d+(b*c*stena);//
var v = getRadioGroupValue(document.radioForm.topic1); // переменная да или нет для установки сруба
if(v=="yes" && st =="yes"){
yst=(stena_5/100)*40;// 40 процентов от общей стоимости всех выбранных параметров
yst_res=stena_5+yst;// итоговая ссума с установкой
form.totall.value = yst_res;// вывод результата в форму
}
else if (v=="yes" && st =="no"){
yst=(d/100)*50;// 40 процентов от общей стоимости всех выбранных параметров
yst_res=d+yst;// итоговая ссума с установкой
form.totall.value = yst_res;// вывод результата в форму
}
else if (v=="no" && st =="yes"){
form.totall.value = stena_5;// вывод результата в форму
}
else{form.totall.value = d;}
}
</SCRIPT>
<form name="radioForm"><table width="650">
<tr>
<td>
<tr><td>размер дома <strong>ДЛИННА</strong></td>
<td width="300"><input size="3" maxlength="3" type="text" name="a" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0" />м<input type="text" name="aa" size="2" maxlength="2" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0" />см</td>
</tr>
<tr>
<td>размер дома <strong>ШИРИНА</strong></td>
<td width="300"><input type="text" name="b" size="3" maxlength="3" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0" />м<input type="text" name="bb" size="2" maxlength="2" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0"/>см</td>
</tr>
<tr>
<td>пятая стена (если есть по проекту)</td>
<td width="300"><input name="topic2" value="yes" type="radio">Да
<input name="topic2" value="no" type="radio" checked>Нет</td>
</tr>
<tr>
<td>остальные перегородки <strong>(указывать в погонных метрах)</strong></td>
<td width="300"><input name="Fm" size="2" type="text" maxlength="3" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0" />м<input name="Fmm" size="2" maxlength="3" type="text" onchange="this.value=this.value.replace(/([^0-9])/g,'');" onkeyup="var n=this.value.replace(/([^0-9])/g,''); if(n!=this.value) this.value=n;" onmousedown="this.value=this.value.replace(/([^0-9])/g,'');" value="0" />см</td>
</tr>
<tr><td>Установка сруба</td>
<td width="300"><input name="topic1" value="yes" type="radio">Да
<input name="topic1" value="no" type="radio" checked>Нет</td>
</tr>
<tr><td>Фронты рубленные</td>
<td width="300"><input name="topic10" value="yes" type="radio">Да
<input name="topic10" value="no" type="radio" checked>Нет</td>
</tr>
<tr><td>Обработка сруба антисептиком</td>
<td width="300"><input name="topic100" value="yes" type="radio">Да
<input name="topic100" value="no" type="radio" checked>Нет</td>
</tr>
<tr><td>Фундамент-ростверковый (ленточный, усиленный сваями)</td>
<td width="300"><input name="topic1000" value="yes" type="radio">Да
<input name="topic1000" value="no" type="radio" checked>Нет</td>
</tr>
<tr>
<tr>
<td width="500"><strong>ИТОГ</strong><input type="text" name="totall" size="20" maxlength="40">
<tr>
<td width="500"><input type="button" value="Рассчитать" onClick="calculator(this.form)"> </td>
</tr>
</table>
</form>
Так как я в JS 0, помогите подправить и добавить (хотя -бы частично
1. при выборе пятой стены калькулятор должен брать за основу ширину сруба(сейчас берет длину).
2. Фундамент-ростверковый -> если ДА, то : ((ширина х2)+(длинна х2)+пятая стена)) х 4500
3. рубленные фронтоны - > если ДА то: постоянное-3м(высота фронтона) х ширина сруба х2500
4. Обработка сруба антисептиком -> если ДА , то : колькулятор должен считать предыдущию квадратуру стен
(эта квадратура уже посчитана из предидущих пунктов) это х 2(так как обработка с 2-х сторон) и х60 рублей
тоесть: м2(общее)х2х60рублей
______________________________
могу даже заплатить 200 руб.