В расчете веса трубы невыполняеться раскрывающийся список, это ошибка? + дополнить...
Вложений: 2
можите исправить ошибку в первом раскрывающемся списке? (см. 1 рисунок)
js код такой:
<script language="JavaScript">
function GoPage()
{
document.calc.submit();
}
function Calculate()
{
switch(document.calc.typet.value)
{
case '1':
var d=document.calc.diametr.value/1000;
var s=document.calc.stenka.value/1000;
var sz=document.calc.dlina.value;
var pl=document.calc.material.value;
var p=3.1415;
var t=p*pl*s*(d-s);
document.result.m1.value=Math.round(t*100)/100;
document.result.mt.value=Math.round(t*sz*100)/100;
break;
case '2':
var a=parseFloat(document.calc.a.value);
var b=parseFloat(document.calc.b.value);
var s=document.calc.stenka.value;
var sz=document.calc.dlina.value;
var pl=document.calc.material.value;
var k,t;
if (pl=x50)
{k=1;}
else
{k=pl/7850;}
t=k*0.0157*s*(a+b-2.86*s);
document.result.m1.value=Math.round(t*100)/100;
document.result.mt.value=Math.round(t*sz*100)/100;
break;
case '3':
var sq=document.calc.sq.value;
var s=document.calc.stenka.value;
var sz=document.calc.dlina.value;
var pl=document.calc.material.value;
var k,t;
if (pl=='7850')
{k=1;}
else
{k=pl/7850;}
t=k*0.0157*s*(2*sq-2.86*s)
document.result.m1.value=Math.round(t*100)/100;
document.result.mt.value=Math.round(t*sz*100)/100;
break;
}
}
function ClearResult()
{
document.result.reset();
}
function Check()
{
var errStr='';
var frm=document.calc;
switch(frm.typet.value)
{
case '1':
if (frm.diametr.value=='' || !IsNumeric(frm.diametr.value))
{errStr='Поле диаметр содержит некорректное значение!\n';}
if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
{
errStr+='Поле стенка содержит некорректное значение!\n';
}
else
{
if (frm.stenka.value > (frm.diametr.value/2))
{
errStr+='Стенка не может больше половины диаметра!\n';
frm.stenka.value='';
}
}
if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
{errStr+='Поле длина содержит некорректное значение!';}
break;
case '2':
if (frm.a.value=='' || !IsNumeric(frm.a.value))
{errStr='Поле длина A содержит некорректное значение!\n';}
if (frm.b.value=='' || !IsNumeric(frm.b.value))
{errStr+='Поле длина B содержит некорректное значение!\n';}
if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
{errStr+='Поле стенка содержит некорректное значение!\n';}
else
{
if (frm.stenka.value > (frm.a.value/2) || frm.stenka.value > (frm.b.value/2))
{
errStr+='Стенка не может больше половины высоты!\n';
frm.stenka.value='';
}
}
if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
{errStr+='Поле длина содержит некорректное значение!';}
break;
case '3':
if (frm.sq.value=='' || !IsNumeric(frm.sq.value))
{errStr+='Поле длина стороны содержит некорректное значение!\n';}
if (frm.stenka.value=='' || !IsNumeric(frm.stenka.value))
{errStr+='Поле стенка содержит некорректное значение!\n';}
else
{
if (frm.stenka.value > (frm.sq.value/2))
{
errStr+='Стенка не может больше половины высоты!\n';
frm.stenka.value='';
}
}
if (frm.dlina.value=='' || !IsNumeric(frm.dlina.value))
{errStr+='Поле длина содержит некорректное значение!';}
break;
}
if (errStr!=='')
{
alert(errStr);
return false;
}
else
{
Calculate();
}
}
function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
}
</script>
HTML код такой: <form action="" method="post" name="calc"> <table style="width: 455px; height: 168px;"> <tbody><tr> <td>Тип трубы</td> <td><select name="typet" onchange="GoPage();"> <option value="1" selected="selected">круглая</option> <option value="2">прямоугольная</option> <option value="3">квадратная</option> </select></td> </tr> <tr> <td>Материал</td> <td><select name="material" onchange="ClearResult();"> <option value="912">Полиэтилен низкого давления</option> <option value="935">Полиэтилен среднего давления</option> <option value="950">Полиэтилен высокого давления</option> </select></td> </tr> <tr> <td>Диаметр,мм</td> <td><input name="diametr" type="text"></td> </tr> <tr> <td>Стенка, мм</td> <td><input name="stenka" type="text"></td> </tr> <tr> <td>Длина, м</td> <td><input name="dlina" type="text"></td> </tr> <tr> <td colspan="2" align="center"><input value="Расчет" onclick="Check();" type="button"></td> </tr> </tbody></table> </form> <form action="" method="post" name="result"> <table> <tbody><tr> <td>Масса 1 метра, кг</td> <td><input name="m1" type="text"></td> </tr> <tr> <td>Общая масса, кг</td> <td><input name="mt" type="text"></td> </tr> </tbody></table> </form> рис.1 = http://javascript.ru/forum/attachmen...1&d=1302699738 + можно как нибудь дополнить функцию дополнения поле, вместо существующих "из раскрывающегося списка материалов" (на выбор) ? рис.2 = http://javascript.ru/forum/attachmen...1&d=1302699933 |
rashid86,:-/
document.calc.a.value -- инпут или селектор с таким именем отсутствует строка 28 if (pl=x50) -- ==950 |
как поправить?...
возможно ли дополнить поле?
|
ну а можно ли ввести a.value и b.value, поля для их ввода??? можно ли это сделать?...на сайтах много таких скриптов, и все они с ошибками.
|
| Часовой пояс GMT +3, время: 15:19. |