Help! Почему не работает код?
Написал простенький онлайн калькулятор для сайта. Скрипт должен обработать форму.
Форма: <form name="calc"> <strong>Параметр стен:</strong><p> <select name="walls"> <option value="1">Без стен</option> <option value="2">Тентовые стены</option> <option value="3">Стены из профлиста</option> </select> <p><strong>Площадь ангара:</strong><p> <input name="square" type="text" value="0" size="6"> <br><input type="button" value=" Рассчитать " onclick="result(walls, square)"> <p><strong>Ориентировочная стоимость:</strong><p> <input name="res" type="text" value="0"> </form> Скрипт: <script language="JavaScript"> function result(walls, square) { var w = parseInt(document.calc.walls.value); var s = parseInt(document.calc.square.value); if (s>=500) { if (w==1) { document.calc.res.value = s * 40; } else if (w==2) { document.calc.res.value = s * 65; } else { document.calc.res.value = s * 85; } } else { if (w==1) { document.calc.res.value = s * 55; } else if (w==2) { document.calc.res.value = s * 75; } else { document.calc.res.value = s * 100; } } } </script> Сей скрипт отказывается выдавать какой-либо результат. Пробовал использовать условный оператор "и" - тоже глухо. Заработал у меня только следующий скрипт, но от него толку мало. Подскажите, пожалуйста, где может быть ошибка? <script language="JavaScript"> function result(walls, square) { var w = parseInt(document.calc.walls.value); var s = parseInt(document.calc.square.value); if (s>500) {document.calc.res.value= 40 * s;} else {document.calc.res.value= 55 * s;} } </script> |
у вас ошибка var w = parseInt(document.calc.walls.value);
В select нету value.Его нужно достать ,видимо, с options. var w = parseInt(document.calc.walls.options[document.calc.walls.selectedIndex].value); |
bot87, код
<script language="JavaScript"> function result(walls, square) { var w = parseInt(document.calc.walls.value); var s = parseInt(document.calc.square.value); if (s>500) {document.calc.res.value= 40 * s;} else {document.calc.res.value= 55 * s;} } </script> работает и с вашей строчкой и с var w = parseInt(document.calc.walls.value);. А вот первый скрипт работать отказывается. |
Вопрос снят, код верен, а не работал по причине того, что wordpress вставлял лишние теги
|
Цитата:
<select id="walls"> <option value="1">Без стен</option> <option value="2">Тентовые стены</option> <option value="3">Стены из профлиста</option> </select> <input type="button" value="Show value" onclick="alert(walls.value)"> При таком обращении у select-a должен быть задан id. Использующаяся в примере автора последовательность со значением атрибута name, конечно, также работает, но через id, на мой взгляд, получается короче и универсальней. |
Цитата:
|
Есть один совет общий. НЕ знаю как вам, но мне удобней пользоваться
document.getElementById('').value. <form name="calc"> <strong>Параметр стен:</strong><p> <select name="walls" id="selectSp"> <option value="1">Без стен</option> <option value="2">Тентовые стены</option> <option value="3">Стены из профлиста</option> </select> <p><strong>Площадь ангара:</strong><p> <input name="square" id="squareTx" type="text" value="0" size="6"> <br><input type="button" value=" Рассчитать " onclick="result(walls, square)"> <p><strong>Ориентировочная стоимость:</strong><p> <input name="res" id="otvet" type="text" value="0"> </form> <script> var w=document.getElementById('selectSp').value, s=document.getElementById('squareTx').value, w=parseFloat(w), s=parseFloat(s), rez=document.getElementById('otvet).value; if (s>=500) { if (w==1) { rez = s * 40; } else if (w==2) { rez = s * 65; } else { rez = s * 85; } } else { if (w==1) { rez = s * 55; } else if (w==2) { rez = s * 75; } else { rez = s * 100; } } } </script> |
Часовой пояс GMT +3, время: 05:11. |