Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.05.2012, 21:57
Новичок на форуме
Отправить личное сообщение для Hike89 Посмотреть профиль Найти все сообщения от Hike89
 
Регистрация: 08.05.2012
Сообщений: 3

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>

Последний раз редактировалось Hike89, 08.05.2012 в 22:00.
Ответить с цитированием
  #2 (permalink)  
Старый 08.05.2012, 22:18
Профессор
Отправить личное сообщение для bot87 Посмотреть профиль Найти все сообщения от bot87
 
Регистрация: 16.05.2011
Сообщений: 307

у вас ошибка var w = parseInt(document.calc.walls.value);
В select нету value.Его нужно достать ,видимо, с options.
var w = parseInt(document.calc.walls.options[document.calc.walls.selectedIndex].value);
__________________
Я только учусь.Ногами просьба не бить
Ответить с цитированием
  #3 (permalink)  
Старый 08.05.2012, 22:35
Новичок на форуме
Отправить личное сообщение для Hike89 Посмотреть профиль Найти все сообщения от Hike89
 
Регистрация: 08.05.2012
Сообщений: 3

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);.
А вот первый скрипт работать отказывается.
Ответить с цитированием
  #4 (permalink)  
Старый 08.05.2012, 23:00
Новичок на форуме
Отправить личное сообщение для Hike89 Посмотреть профиль Найти все сообщения от Hike89
 
Регистрация: 08.05.2012
Сообщений: 3

Вопрос снят, код верен, а не работал по причине того, что wordpress вставлял лишние теги
Ответить с цитированием
  #5 (permalink)  
Старый 09.05.2012, 09:59
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от bot87
В select нету value
<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, на мой взгляд, получается короче и универсальней.

Последний раз редактировалось bes, 09.05.2012 в 10:30.
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2012, 19:10
Новичок на форуме
Отправить личное сообщение для URANcn Посмотреть профиль Найти все сообщения от URANcn
 
Регистрация: 04.06.2012
Сообщений: 1

Сообщение от Hike89 Посмотреть сообщение
Вопрос снят, код верен, а не работал по причине того, что wordpress вставлял лишние теги
У меня та же проблема с калькулятором, можно ли узнать по подробнее как именно устранить проблему доставления лишних тегов wordpressм?
Ответить с цитированием
  #7 (permalink)  
Старый 05.06.2012, 11:13
Аватар для Джэксон
Аспирант
Отправить личное сообщение для Джэксон Посмотреть профиль Найти все сообщения от Джэксон
 
Регистрация: 21.05.2012
Сообщений: 89

Есть один совет общий. НЕ знаю как вам, но мне удобней пользоваться
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>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает простой код. Помогите, очень надо AntiBuger Internet Explorer 1 27.05.2010 16:35
Почему код работает? (обращение к форме из window) Василий Б. Элементы интерфейса 10 21.04.2010 10:10
Почему не работает document.getElementById() giGnet Events/DOM/Window 3 18.04.2010 14:30
Почему не работает код? JSprog Общие вопросы Javascript 4 16.08.2009 14:39
Код не работает в седьмом Эксплорере... vol4ara Общие вопросы Javascript 0 14.07.2008 18:53