Такая проблемка.Пишу калькулятор для Ethernet. Уровень познания в js минимальный.
По информации в интернете написала интерфейс страницы, нашла бегунки (преподаватель попросил)
Потом начала писать скрипт, требовалось:
- если пользователь выбирает длину сегмента больше, чем возможно для данного типо - ругаться на него и ничего не выдавать,
-если длины для типов соответствуют и все хорошо - выдавать значения и в вердикте писать "поздравляю бла бла бла"
что получилось
<script type="text/javascript">
function go_result()
{
var beg_one = trackbar.getObject('one').leftValue;
var beg_two = trackbar.getObject('two').leftValue;
var value_one = document.Q.rb1.value;
var value_two = document.Q.rb2.value;
if(beg_one <= value_one && beg_two <= value_two)
{
if(value_one == 500)
{
sum_pvd1 = 11.8 + beg_one*0.0866;
sum_pvv1 = 16;
}
else if(value_one == 185)
{
sum_pvd1 = 11.8 + beg_one*0.1026;
sum_pvv1 = 16;
}
else if(value_one == 100)
{
sum_pvd1 = 15.3 + beg_one*0.113;
sum_pvv1 = 10.5;
}
else(value_one == 2000)
{
sum_pvd1 = 12.3 + beg_one*0.1;
sum_pvv1 = 10.5;
}
if(value_two == 500)
{
sum_pvd2 = 169.5 + beg_two*0.0866;
sum_pvv2 = 11;
}
else if(value_two == 185)
{
sum_pvd2 = 169.5 + beg_two*0.1026;
sum_pvv2 = 11;
}
else if(value_two == 100)
{
sum_pvd2 = 165 + beg_two*0.113;
sum_pvv2 = 2;
}
else(value_two == 2000)
{
sum_pvd2 = 156.5 + beg_two*0.1;
sum_pvv2 = 8 ;
}
}
else
{
sum_pvv2 =0;
sum_pvd2 =0;
}
document.C.bars.value = (sum_pvd2 > 0) ? 'Поздравляю! У вас получилась корректная схема ЛВС Ethernet.' : 'Так делать не стоит. Прочитайте правила выборы длины сегмента и попробуйте еще раз.';
document.C.pvd.value = sum_pvd1 + sum_pvd2;
document.C.pvv.value = sum_pvv1 + sum_pvv2;
}
Тут trackbar.getObject('one').leftValue это информация о значении бегунка 1 , trackbar.getObject('tow').leftValue - о бегунке 2.
document.Q.rb1.value - 1й набор выкотолотых точек, а var value_one = document.Q.rb2.value 2й набор.
Проблема в том что PVV и PVD всегда выдает одинаковое , какой бы я не тыкала тип . Всегда выдает 18.5 для PVV. Слава богу смогла добиться, чтобы когда вылазило за максимальную длину ругался .
18.5 - это 10.5 + 8 , ну то есть заходит всегда в оба else. Что делать не знаю, потому что в теории вообще не сильна, делала по аналогии все.
Думала как бы сделать в одну комбинацию if-else , но у меня максимальное количество сегментов может быть 5(это тут укорченный вариант с 2мя сегментами) , то есть получается c таким подходом 4 в пятой степени if`ов тогда , то есть 1024 . Это ужассс
Помогите )