02.03.2010, 06:20
|
Новичок на форуме
|
|
Регистрация: 02.03.2010
Сообщений: 6
|
|
Помогите найти ошибку в скрипте.
Уважаемые знатоки, просьба не бить меня ногами так как со скриптами делов почти не имел, надо было сделать скрипт расчета мощности кондиционеров, делал по учебнику, не работает никак. В учебнике было только показано как сделать если все переменные вводятся в поле юзером, а если например надо сделать менб в котором будет выбирать несколько режимов и каждому режиму определенный параметр числовое значение, я оформил тегом
<select name="komps" onchange="calculate( );">
<option value=1>x</option>
<option value=2>y</option>
я правильно понял ано подтащит в формулу значения 1 или 2 ?
вот все что я написал
<html>
<head>
<title> JavaScript</title>
<style>
.result { font-weight: bold; }
#payment { text-decoration: underline; }
</style>
</head>
<body>
<form name="St1Ff">
<table>
<tr><td><b>Расчет мощьности кондиционера</b></td></tr>
<tr>
<td>Площадь помещения, кв. м</td>
<td><input type="text" name="ploshad" onchange="calculate();"></td>
</tr>
<tr>
<td>Высота потолка, м</td>
<td><input type="text" name="visota" onchange="calculate( );"></td>
</tr>
<tr>
<td>Инсоляция (степень освещенности солнечными лучами)</td>
<td>
<select name="insol" onchange="calculate( );">
<option value=30>Слабая</option>
<option value=35>Средняя</option>
<option value=40>Сильная</option>
</select>
</td>
</tr>
<tr>
<td>Количество людей</td>
<td>
<select name="people" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</td>
</tr>
<tr>
<td>Количество компьютеров</td>
<td>
<select name="komps" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</td>
</tr>
<tr>
<td>Количество телевизоров</td>
<td>
<select name="telek" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
</td>
</tr>
<tr>
<td>Мощность остальной бытовой техники, Вт</td>
<td><input type="text" name="ostal" onchange="calculate( );"></td>
</tr>
<tr><td></td>
<td><input type="button" value="Рассчитать"
onclick="calculate( );"></td>
</tr>
<tr><td><b>Результат:</b></td></tr>
<tr>
<td>Результат:</td>
<td>$<span class="result" id="resalt"></span></td>
</tr>
</table>
</form>
<script language="JavaScript">
function calculate( ) {
var ploshad = document.St1Ff.ploshad.value;
var visota = document.St1Ff.visota.value;
var ostal = document.St1Ff.ostal.value;
var insol = document.St1Ff.insol.value;
var people = document.St1Ff.people.value;
var komps = document.St1Ff.komps.value;
var telek = document.St1Ff.telek.value;
var q1 = (ploshad*visota*insol)/(1000);
var q2 = (0,13*people);
var q3 = (0,3*komps)+(0,2*telek)+(ostal);
var result = (q1+q2+q3);
var resalt = document.getElementById("resalt");
if (isFinite(monthly)) {
resalt.innerHTML = resalt.toFixed(2);
}
else {
result.innerHTML = "";
}
}
</script>
</body>
</html>
Помогите найти ошибку. Заранее благодарностью
зы формулы расчета взял Тут и попытался сделать похожее..
|
|
02.03.2010, 09:04
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,576
|
|
Во первых: позакрывай selectы:
<select name="people" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</select>
По коду:
Вместо подобного:
var people = document.St1Ff.people.value;
пиши:
var sel = document.St1Ff.people;
var people = sel[sel.selectedIndex].value;
Цитата:
|
Уважаемые знатоки
|
А вот за это спасибо.
|
|
02.03.2010, 12:10
|
Новичок на форуме
|
|
Регистрация: 02.03.2010
Сообщений: 6
|
|
Спасибо за ответ, код переписал, но все равно еще не считает
<html>
<head>
<title> JavaScript</title>
<style>
.result { font-weight: bold; } #payment { text-decoration: underline; }
</style>
</head>
<body>
<form name="St1Ff">
<table>
<tr><td><b>Расчет мощьности кондиционера</b></td></tr>
<tr>
<td>Площадь помещения, кв. м</td>
<td><input type="text" name="ploshad" onchange="calculate();"></td>
</tr>
<tr>
<td>Высота потолка, м</td>
<td><input type="text" name="visota" onchange="calculate( );"></td>
</tr>
<tr>
<td>Инсоляция (степень освещенности солнечными лучами)</td>
<td>
<select name="insol" onchange="calculate( );">
<option value=30>Слабая</option>
<option value=35>Средняя</option>
<option value=40>Сильная</option>
</select>
</td>
</tr>
<tr>
<td>Количество людей</td>
<td>
<select name="people" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</select>
</td>
</tr>
<tr>
<td>Количество компьютеров</td>
<td>
<select name="komps" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
</select>
</td>
</tr>
<tr>
<td>Количество телевизоров</td>
<td>
<select name="telek" onchange="calculate( );">
<option value=1>1</option>
<option value=2>2</option>
</select>
</td>
</tr>
<tr>
<td>Мощность остальной бытовой техники, Вт</td>
<td><input type="text" name="ostal" onchange="calculate( );"></td>
</tr>
<tr><td></td>
<td><input type="button" value="Рассчитать"
onclick="calculate( );"></td>
</tr>
<tr><td><b>Результат:</b></td></tr>
<tr>
<td>Результат:</td>
<td>$<span class="result" id="result"></span></td>
</tr>
</table>
</form>
<script language="JavaScript">
function calculate( ) {
var ploshad = document.St1Ff.ploshad.value;
var visota = document.St1Ff.visota.value;
var ostal = document.St1Ff.ostal.value;
var sel = document.St1Ff.insol;
var insol = sel[sel.selectedIndex].value;
var sel = document.St1Ff.people;
var people = sel[sel.selectedIndex].value;
var sel = document.St1Ff.komps;
var komps = sel[sel.selectedIndex].value;
var sel = document.St1Ff.telek;
var telek = sel[sel.selectedIndex].value;
var q1 = (ploshad*visota*insol)/(1000);
var q2 = (0,13*people);
var q3 = (0,3*komps)+(0,2*telek)+(ostal);
var result = (q1+q2+q3);
var result = document.getElementById("result");
if (isFinite(monthly)) {
result.innerHTML = result.toFixed(2);
}
else {
result.innerHTML = "";
}
}
</script>
</body>
</html>
|
|
02.03.2010, 12:51
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
St1Ff,
if (isFinite(monthly)) //чему равно monthly?{
result.innerHTML = result.toFixed(2);
}
monthly не определён
|
|
02.03.2010, 13:00
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
St1Ff,
function calculate( ) {
var ploshad = document.St1Ff.ploshad.value;
var visota = document.St1Ff.visota.value;
var ostal = document.St1Ff.ostal.value;
var sel = document.St1Ff.insol;
var insol = sel[sel.selectedIndex].value;
var sel = document.St1Ff.people;
var people = sel[sel.selectedIndex].value;
var sel = document.St1Ff.komps;
var komps = sel[sel.selectedIndex].value;
var sel = document.St1Ff.telek;
var telek = sel[sel.selectedIndex].value;
var q1 = (ploshad*visota*insol)/(1000);
var q2 = (0,13*people);
var q3 = (0,3*komps)+(0,2*telek)+(ostal);
var result = (q1+q2+q3);
//Вы Ваш result переопределяли на getElementById(), конечно ничего не выведится
var resultSum = document.getElementById("result").innerHTML=result;
if (isFinite(result)) { // Вы проверяли несуществующую переменную monthly
result.innerHTML = result.toFixed(2);
}
else {
result.innerHTML = "";
}
}
|
|
02.03.2010, 13:32
|
Новичок на форуме
|
|
Регистрация: 02.03.2010
Сообщений: 6
|
|
Спасибо Вам большое, все заработало monthly тоже заметил, исправил все равно не работало, я с образца делал, ана оттуда осталась..
Не могли бы вы еще как мастера подсказать какую нить книжку толковую и несложную в освоении, и еще вопросик, а вы все эти ошибки нашли сами, или есть какие то проги чтоб показывали где процесс оборвался и ошибку ?
|
|
02.03.2010, 16:46
|
Новичок на форуме
|
|
Регистрация: 02.03.2010
Сообщений: 6
|
|
Еще вопрос.. Готовый результат выводится, как можно реализовать еще кусок скрипта, чтобы он брал этот результат, например 10, дальше относил его к какому то диапазону (например, легкий 1-5 кг, средний 6-10) и выводил название диапазона на экран. то есть результат выводится как цифрами так и пишется например "средний", заранее спасибо!
|
|
02.03.2010, 17:01
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,576
|
|
Вы просите за Вас логику реализовать.
Это работа которая обычно оплачивается.
Или постарайтесь сделать сами, а что не получится - выкладывайте код, посмотрим ...
|
|
02.03.2010, 17:34
|
Новичок на форуме
|
|
Регистрация: 02.03.2010
Сообщений: 6
|
|
Сообщение от micscr
|
Вы просите за Вас логику реализовать.
Это работа которая обычно оплачивается.
Или постарайтесь сделать сами, а что не получится - выкладывайте код, посмотрим ...
|
НУ а как єто реализуется команда if ? как в нее внести диапазон значений?
if(result >= 10, <= 20) {
var result55 = 123123
}
if(result >= 21, <= 30) {
var result55 = 12fd23
}
НЕпашет ))
|
|
02.03.2010, 18:40
|
Любитель
|
|
Регистрация: 16.12.2009
Сообщений: 422
|
|
St1Ff,
Я не совсем понимаю, что Вам надо, по-этому просто исправлю Ваш ужас))
var result55;
if(result >= 10&&result <= 20)
{
result55 = 123123;
}
if(result >= 21&&result<= 30)
{
result55 = '12fd23'; // это строка
}
if не команда, а конструкция
Последний раз редактировалось JsLoveR, 02.03.2010 в 18:45.
|
|
|
|