Нужна помощь с js я вообще не шарю

dmx

Хранитель порядка
Регистрация
22 Июн 2011
Сообщения
709
Реакции
705
Вот JS и форма :
Код:
<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 руб. :)
 
это основная формула для 5й стены где d-цена стен, фронтона и перегородок, b-высота стен, c- ширина стен (длинна как бы и не учитывается)
А с остальными пунктами желательно подетальнее указать куда их включать и как учитывать
Да... и к этому скрипту не все поля формы указаны... в частности не хватает полей длинны перегородок
 
  • Нравится
Реакции: dmx
Да скрипт походу кривой напрочь ! Смотрел человек с фриланса.
Не понятно как автор 5 стену высчитал по такой формуле :
d = (2*(a+c))*b*sum+((c*z*n*fr)/2)+(v*vn)+(stena*b*fm);
где
а -длина дома
с - это ширина
 
Вы бы просто дали математику расчета (имею ввиду первичные данные и формулы расчета), а уже это как то прикрутим к скрипту :)
Как я понимаю должен быть отдельный расчет площади стен, перегородок, фронтона и соответственно сумм денег за них, а потом в зависимости от условий перемножить на коэффициенты и подсчитать в итоге общую сумму...
 
  • Нравится
Реакции: dmx
Назад
Сверху