powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX Javascript IE
13 сообщений из 13, страница 1 из 1
APEX Javascript IE
    #37983352
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. У меня возникла проблема с IE.

Имею на странице tabular form в которой есть select list. При выборе имени из этого select list заполняются поля tabular form. Если пользователь добавляет строчку, то в списке имен выбранное имя не показывается. Я новичок в javascript, написал вот такие вот функции и поставил их на onclick и onchange в select list:
Код: html
1.
onclick="hideN(this)" onchange="hide(this)"


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
function hide(pName)
{
	var vRow = pName.id.substr(pName.id.indexOf('_')+1); //Get row
	var name = html_GetElement('f01_'+vRow); //Get names select list
	
	
	
	for(var i = 0; i <= selIndex.length; i++)
	{
		if($.inArray(name.selectedIndex, selIndex) == -1)
		{
			selIndex.push(name.selectedIndex);
		}
	}
}

function hideN(pName)
{
	var vRow = pName.id.substr(pName.id.indexOf('_')+1);
	var name = html_GetElement('f01_'+vRow);
	var length = name.length-1;
	if(click != 0)
	{
		for(var i = 0; i < length; i ++)
		{
			name.options[i].style.display = "block";
		}
		for(var i = 0; i < selIndex.length; i++)
		{
			if(i != name.selectedIndex)
			{
				name.options[selIndex[i]].style.display = "none";
			}
		}
	}
	click++;
}



все прекрасно работает в FF и Chrome, но не работает в IE. Притом он не выдает ошибок. Дебаг показал что IE выполняет onclick и при клике на сам контрол и при клике на имя в списке.
Код: javascript
1.
name.options[selIndex[i]].style.display = "none";

не выполняется, то есть дебаг показывает что значение присвоено, но имя не пропадает.

Помогите кто может.
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983373
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить что IE 9.
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983470
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никто не знает?
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983667
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

А jQuery вам на что?
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983728
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,

Не совсем понял вопроса.
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983760
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

Используйте jQuery или миритесь с тем, что не работает то в одном браузере, то в другом.
jQuery не избавит вас от всех проблем, но многих, вы же сами избрали путь, который ведет к таким ситуациям...
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37983768
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevвы же сами избрали путь, который ведет к таким ситуациям...
Эх... Если бы я избирал пути... Я бы вообще апексом не работал бы.
Большое спасибо за ответ, буду рыть jQuery
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37984135
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function hide(pName)
{
	var vRow = pName.id.substr(pName.id.indexOf('_')+1); //Get row
	var name = html_GetElement('f01_'+vRow); //Get names select list
	
	
	
	for(var i = 0; i <= selIndex.length; i++)
	{
		if($.inArray(name.selectedIndex, selIndex) == -1)
		{
			selIndex.push(name.selectedIndex);
		}
	}
}



Выделенное -- лишнее. Скажу больше, вместо двух функций вполне хватило бы одной, которая срабатывает на change.

Даже с использованием jQuery спрятать option в IE не получится. Единственный выход -- удалять их. Это сработает в любом браузере.
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37984151
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerЕдинственный выход -- удалять их. Это сработает в любом браузере.

Ещё можно попробовать заворачивать в span и прятать уже обёртку. Или устанавливать атрибут disabled. Но эти подходы на кроссбраузерность я не проверял.
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37984345
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37984347
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDevПри м еры через jQuery
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37984477
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Daedroth,

Возможно пример не очень удачный, я к тому, что suPPLer правильно говорит, но это не отменяет необходимость использования jQuery, Потом еще 100 раз натолкнетесь на эти грабли, я, например, даже код подобный вашему разбирать не стану. И уж тем более со словами не работает в браузере!
...
Рейтинг: 0 / 0
APEX Javascript IE
    #37985075
Фотография Daedroth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SvDev,

Большое спасибо за помощь.

Будем думать дальше.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX Javascript IE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]