Javascript.RU

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

Не работает в експлоере обращение к массиву
(в опере и файерфокс работает)

На сайте цена отображается в зависимости от выбранных параметров, которые определюятся радиобатонами. Если произошло изменение то вызывается джаваскрипт функция, котора меняет цену.

Вот такие данные:

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];

Объект не поддерживает это свойство или метод

Если кто знает - подскажите пожалуйста как его сделать
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2010, 15:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

vitaliy11,
Не используйте одинаковые id и названия глобальных переменных или добавьте var
var price=ar_price[numpf][materialf];
var presencel=ar_presencel[numpf][materialf];
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2010, 16:11
Новичок на форуме
Отправить личное сообщение для vitaliy11 Посмотреть профиль Найти все сообщения от vitaliy11
 
Регистрация: 22.11.2010
Сообщений: 2

Спасибо за ответ!

var немного помогло
насчет id не понял

Теперь ошибки не выдает, но работает в эксплоере не правильно:
при переключении радиобаттона не всякий раз срабатывает и цену выдает не его (даже если выдавать alert, то не каждый раз срабатывает).

В массиве идет с кавычками (ar_price["1"]) пробовал вот здесь обращаться и с кавычками и без (var price=ar_price[numpf][materialf]
В опере и так и так работает, а в эксплоере никак.

Можете еще дать совет?

P.S. На радиобаттоне стоит:

onchange="document.forms['fprice'].hmaterial.value=this.value; return priceView();"

Последний раз редактировалось vitaliy11, 22.11.2010 в 16:41.
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2010, 22:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от vitaliy11
насчет id не понял
Сообщение от vitaliy11
price=ar_price[numpf][materialf];
Сообщение от vitaliy11
document.getElementById('price').innerHTML=price;
Сообщение от рони
Не используйте одинаковые id и названия глобальных переменных или добавьте var
Сообщение от vitaliy11
Можете еще дать совет?
А где неработающий код примера, а не вырванные из контекста строки?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему код работает? (обращение к форме из window) Василий Б. Элементы интерфейса 10 21.04.2010 10:10
Работает в Mozilla и не работает в IE Maxidrom Events/DOM/Window 4 27.02.2010 16:37
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32