Не работает в експлоере обращение к массиву
(в опере и файерфокс работает)
На сайте цена отображается в зависимости от выбранных параметров, которые определюятся радиобатонами. Если произошло изменение то вызывается джаваскрипт функция, котора меняет цену. Вот такие данные: 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, время: 21:25. |