Помогите найти ошибку в скрипте.
Уважаемые знатоки, просьба не бить меня ногами так как со скриптами делов почти не имел, надо было сделать скрипт расчета мощности кондиционеров, делал по учебнику, не работает никак. В учебнике было только показано как сделать если все переменные вводятся в поле юзером, а если например надо сделать менб в котором будет выбирать несколько режимов и каждому режиму определенный параметр числовое значение, я оформил тегом
<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> Помогите найти ошибку. Заранее благодарностью:) зы формулы расчета взял Тут и попытался сделать похожее.. |
Во первых: позакрывай 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; Цитата:
|
Спасибо за ответ, код переписал, но все равно еще не считает :(
<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> |
St1Ff,
if (isFinite(monthly)) //чему равно monthly?{ result.innerHTML = result.toFixed(2); } monthly не определён |
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 = ""; } } |
Спасибо Вам большое, все заработало :thanks: monthly тоже заметил, исправил все равно не работало, я с образца делал, ана оттуда осталась..
Не могли бы вы еще как мастера подсказать какую нить книжку толковую и несложную в освоении, и еще вопросик, а вы все эти ошибки нашли сами, или есть какие то проги чтоб показывали где процесс оборвался и ошибку ? |
Еще вопрос.. Готовый результат выводится, как можно реализовать еще кусок скрипта, чтобы он брал этот результат, например 10, дальше относил его к какому то диапазону (например, легкий 1-5 кг, средний 6-10) и выводил название диапазона на экран. то есть результат выводится как цифрами так и пишется например "средний", заранее спасибо!
|
Вы просите за Вас логику реализовать.
Это работа которая обычно оплачивается. :) Или постарайтесь сделать сами, а что не получится - выкладывайте код, посмотрим ... |
Цитата:
if(result >= 10, <= 20) { var result55 = 123123 } if(result >= 21, <= 30) { var result55 = 12fd23 } НЕпашет )) |
St1Ff,
Я не совсем понимаю, что Вам надо, по-этому просто исправлю Ваш ужас)) var result55; if(result >= 10&&result <= 20) { result55 = 123123; } if(result >= 21&&result<= 30) { result55 = '12fd23'; // это строка } if не команда, а конструкция |
Цитата:
Цитата:
https://addons.mozilla.org/ru/firefox/addon/60 остальное - сам. |
Цитата:
|
St1Ff,
Да не за что:victory: |
FUNCTION, или заключенный в кнопке...
Люди! Мне 13 лет так что строго не судите! Я собирался написать скрипт такого типа: есть кнопки(на странице) при нажатии на каждую из них выводиться функция следующего типа:
//////////////////////////////////////////////////////////////////////////////////// function *****() { var user_id = prompt("Введите ID пользователя: ","") window.open('http://vkontakte.ru/*****.php?id='+user_id) } <input type="button" value="Фото" onClick="*****()"> //////////////////////////////////////////////////////////////////////////////////// и так несколько кнопок подряд! Как мне засунуть функцию в кнопку (орфографически правильно), и вообще, правильный ли сам синтаксис? Если кто может, помогите! Я очч сильно туплю при создании функций, и до последней крови дерусь с синтаксисом! Заранее Спасибо! |
Ну так а что не работает-то? Или
Цитата:
<script type="text/javascript"> function f() { var uid = prompt('User ID:'); alert('User ID is ' + uid); } </script> <input type="button" value="Ввести User ID" onclick="f()" /> |
Да я уже нашел!) Кстати, хотие кто-нибудь рульный учебник по JS? От Джо Бернса?
|
JavaScript vs Cookies
Я такую фигню писанул:
javascript: var a = document.cookie; alert(a); получил куки, А расшифровать то их как???!!! |
Часовой пояс GMT +3, время: 16:29. |