Проблема с переменными
Подскажите, плс, Почему
<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) Спасибо! |
пипец... кто учит такие скрипты писать?
|
Я javascript впервой вижу, мож сейчас не все правильно написал, но в практике с переменной addcol1 работает, а с addcol[1] нет
|
А можете комментарии написать к Вашим скриптам, что они делают в какой строчке (или что должны)?
Например, что должно происходить в строке document.frm.pcs.value=eval(addcol1);? Ну и оформите пожалуйста используя теги [ JS ][ /JS ] и [ HTML ][ /HTML ] |
<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 или не является объектом |
Ой, забыл.
При использовании списков select в форме frm к числу 666 прибавляется значение списка и вписывается в текстовое поле add той же формы. |
> Почему ... 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 |
Пасибы!
Спасибо за помощь и за то, что на FAQ не послали!!!
|
Часовой пояс GMT +3, время: 03:25. |