Не работает в експлоере обращение к массиву
(в опере и файерфокс работает)
На сайте цена отображается в зависимости от выбранных параметров, которые определюятся радиобатонами. Если произошло изменение то вызывается джаваскрипт функция, котора меняет цену. Вот такие данные: 1. Примерный объект (был массив, но прочитал что для ассоициативных лучше использовать объекты) - количество ламп - материал - цена: <SCRIPT language=JavaScript type=text/javascript> var ar_price= new Object(); ar_price["1"]= {}; ar_price["1"][114]=4277; ar_price["1"][116]=5941; ar_price["1"][115]=4823; ar_price["1"][117]=6097; var ar_presencel= new Object(); ar_presencel["1"]= {}; ar_presencel["1"][114]='В наличии'; ar_presencel["1"][116]='В наличии'; ar_presencel["1"][115]='Под заказ'; ar_presencel["1"][117]='Под заказ'; </script> 2. Функция <SCRIPT language=JavaScript type=text/javascript> function priceView() { var price_view=1; numpf=document.forms["fprice"].hnump.value; materialf=document.forms["fprice"].hmaterial.value; //alert(materialf); //numpf=document.getElementById('fprice').hnump.value; //materialf=document.getElementById('fprice').hmaterial.value; price=ar_price[numpf][materialf]; presencel=ar_presencel[numpf][materialf]; //alert(price); if(price==undefined) {price='не указано';} else {price=price+' грн.';} if(presencel==undefined) {presencel='нет позиции';} if(price_view==1) { document.getElementById('price').innerHTML=price; } document.getElementById('presencel').innerHTML=presencel; //alert(price); return false; } </script> 3. Ошибку выдает на строчку: price=ar_price[numpf][materialf]; Объект не поддерживает это свойство или метод Если кто знает - подскажите пожалуйста как его сделать |
vitaliy11,
Не используйте одинаковые id и названия глобальных переменных или добавьте var var price=ar_price[numpf][materialf]; var presencel=ar_presencel[numpf][materialf]; |
Спасибо за ответ!
var немного помогло насчет id не понял Теперь ошибки не выдает, но работает в эксплоере не правильно: при переключении радиобаттона не всякий раз срабатывает и цену выдает не его (даже если выдавать alert, то не каждый раз срабатывает). В массиве идет с кавычками (ar_price["1"]) пробовал вот здесь обращаться и с кавычками и без (var price=ar_price[numpf][materialf];) В опере и так и так работает, а в эксплоере никак. Можете еще дать совет? P.S. На радиобаттоне стоит: onchange="document.forms['fprice'].hmaterial.value=this.value; return priceView();" |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 17:19. |