В расчете веса трубы невыполняеться раскрывающийся список, это ошибка? + дополнить...
Вложений: 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, время: 21:54. |