Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2008, 12:07
Painerman
 
Сообщений: n/a

Проблема с переменными
Подскажите, плс, Почему

<script type="text/javascript">
function calculate() {
document.frm.pcs.value=eval(addcol1);
}
</script>
<select onchange="calculate()" size=1 name=addcol1>
<option value='10'></option>
...
</select>
<input type=text name=pcs value=0>

РАБОТАЕТ, а

<script type="text/javascript">
function calculate() {
document.frm.pcs.value=eval(addcol[1]);
}
</script>
<select onchange="calculate()" size=1 name=addcol[1]>
<option value='10'></option>
...
</select>
<input type=text name=pcs value=0>

НЕТ (когда использую массивы IE кричит нет объекта addcol.1)

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2008, 12:23
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

пипец... кто учит такие скрипты писать?
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2008, 12:25
Painerman
 
Сообщений: n/a

Я javascript впервой вижу, мож сейчас не все правильно написал, но в практике с переменной addcol1 работает, а с addcol[1] нет
Ответить с цитированием
  #4 (permalink)  
Старый 11.11.2008, 12:25
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

А можете комментарии написать к Вашим скриптам, что они делают в какой строчке (или что должны)?
Например, что должно происходить в строке document.frm.pcs.value=eval(addcol1);?

Ну и оформите пожалуйста используя теги [ JS ][ /JS ] и [ HTML ][ /HTML ]
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2008, 12:49
Painerman
 
Сообщений: n/a

<script type="text/javascript">

function calculate () {
var base=666;
var total=0;
total=total+eval(frm.price.value);
total=total+eval(frm.price1.value);
total=total+eval(frm.price2.value);
document.frm.add.value=total+eval(base);
}

</script>
<form name="frm" action="$PHP_SELF" method="post">
<select name='price' size=1 onchange="calculate()">
<option value='0' selected>Выберите</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</select>+
<br>
<select name='price1' size=1 onchange="calculate()">
<option value='0' selected>Выберите</option>
<option value='10'>10</option>
<option value='20'>20</option>
<option value='30'>30</option>
<option value='40'>40</option>
<option value='50'>50</option>
</select>+
<br>
<select name='price2' size=1 onchange="calculate()">
<option value='0' selected>Выберите</option>
<option value='100'>100</option>
<option value='200'>200</option>
<option value='300'>300</option>
<option value='400'>400</option>
<option value='500'>500</option>
</select>=
<br>
<input type="text" name=add value=666>
</form>


Ну вот это работает, а когда я использую переменные типа price[0] IE ругается "frm.price.0" - есть null или не является объектом
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2008, 12:52
Painerman
 
Сообщений: n/a

Ой, забыл.
При использовании списков select в форме frm к числу 666 прибавляется значение списка и вписывается в текстовое поле add той же формы.
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2008, 13:08
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

> Почему ... addcol1 (name=addcol1) РАБОТАЕТ, а addcol[1] (name=addcol[1]) нет

потому что квадратные скобки в JS используются для обращения к свойству объекта; вот и пытается движок вхождение addcol[1] распознать, как свойство 1 объекта addcol. Т.к. у вас нет объекта addcol, то и выдается соответствующая ошибка.

> eval(addcol[1])

не нужен здесь eval; если все-таки интересуют имена с квадратными скобками, то используйте кавычки:

document.forms['frm'].elements['addcol[1]'].value
__________________
Тонкости ECMAScript
Ответить с цитированием
  #8 (permalink)  
Старый 11.11.2008, 13:35
Painerman
 
Сообщений: n/a

Пасибы!
Спасибо за помощь и за то, что на FAQ не послали!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема закрытия окна (window.close()) в Mozilla и FireFox Гость AJAX и COMET 4 06.11.2008 19:22
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38
проблема с обработкой DIV nerik AJAX и COMET 2 22.08.2008 17:40
Проблема с маркером kostian02 Общие вопросы Javascript 0 23.06.2008 16:10
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 16:56