Показать сообщение отдельно
  #1 (permalink)  
Старый 13.04.2011, 18:07
Аватар для rashid86
Интересующийся
Отправить личное сообщение для rashid86 Посмотреть профиль Найти все сообщения от rashid86
 
Регистрация: 07.03.2010
Сообщений: 16

В расчете веса трубы невыполняеться раскрывающийся список, это ошибка? + дополнить...
можите исправить ошибку в первом раскрывающемся списке? (см. 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
Изображения:
Тип файла: bmp js_truba1.bmp (212.1 Кб, 5 просмотров)
Тип файла: bmp js_truba2.bmp (326.5 Кб, 4 просмотров)

Последний раз редактировалось rashid86, 13.04.2011 в 18:10.
Ответить с цитированием