Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Навигация в tabular form / 25 сообщений из 36, страница 1 из 2
08.08.2012, 14:06
    #37908882
batyev007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Добрый день!
Как сделать навигацию клавишами (стрелками) вверх-вниз по редактируемым полям tabular form ?
спасибо
...
Рейтинг: 0 / 0
09.08.2012, 02:19
    #37909800
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
batyev007Как сделать навигацию клавишами (стрелками) вверх-вниз по редактируемым полям tabular form ?

Через Dynamic Action, который будет отслеживать нажатия клавиатуры в регионе с формой.
...
Рейтинг: 0 / 0
09.08.2012, 08:45
    #37909889
batyev007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Разжуйте пож-та поэтапно, я в апекс недавно.
Где вставляется dinamic action и что в ней прописывать ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.08.2014, 12:55
    #38718042
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
suPPLer,

тоже заинтересовал данный вопрос. Event прописывать Key Press?
Каким образом распознавать, какая клавиша нажата?
...
Рейтинг: 0 / 0
12.08.2014, 13:15
    #38718088
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
По коду клавиш, но это не очень затея, тк не кроссбраузерно.
...
Рейтинг: 0 / 0
12.08.2014, 13:42
    #38718134
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
...
Рейтинг: 0 / 0
12.08.2014, 16:24
    #38718504
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Пробовал я через них получается фигня какая то.
...
Рейтинг: 0 / 0
13.08.2014, 10:48
    #38719073
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
kasik,

а какие ещё варианты?
...
Рейтинг: 0 / 0
13.08.2014, 11:08
    #38719098
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Варианта 2: делать и не делать. Фигня может получиться всегда и из всего, надо сделать чтобы фигни не было. Не вижу проблем с задачей. Проверяешь клавишу, JS ставим фокус в нужный элемент, все просто. Я думаю даже старые IE умеют клавиши ловить.
...
Рейтинг: 0 / 0
13.08.2014, 12:59
    #38719256
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Просто, в моем случаи, мне надо было кроссброузерное решение, это решение таким не оказалось, и с том же IE не заробило... Вообщем дальше с задачей не стал загоняться и отложил. Если вы найдете, я только ха и самому будет интересно.
...
Рейтинг: 0 / 0
13.08.2014, 13:14
    #38719276
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
jQuery кроссбраузерный. Не знаю что там могло не получиться.
Логика такая:
1) Вешаем событие keypress на ячейку региона отчета
2) Если это стрелка, то вычисляем номер ячейки и номер строки
3) Переходим на строку выше/ниже с нужным номером ячейки
...
Рейтинг: 0 / 0
13.08.2014, 16:11
    #38719554
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Не получилось, не в логике, а в физике. Не реагировало в IE, другой механизм обработки событий от клавы видимо в нем.
...
Рейтинг: 0 / 0
19.08.2014, 13:16
    #38723422
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Gustly,

а каким образом вешать именно на ячейку?
Я пробовал в Selection Type указывать Region, но именно Region на KeyPress не реагирует...
...
Рейтинг: 0 / 0
19.08.2014, 13:45
    #38723453
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Весёлый,

Проверил я IE, там правда стрелочки работают только внутри инпута и в логи нажатий не попадают.
http://yandex.ru/yandsearch?text=IE js keypress arrow in input&lr=240
Попробуйте поищите, может поможет, возможно завтра будет время, тоже посмотрю.
...
Рейтинг: 0 / 0
19.08.2014, 15:05
    #38723553
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
В своё время использовал вот это:

jQuery plugin for hooking keyboard events

Некоторые комбинации клавишь в некоторых браузерах могут не работать, проверяется на демке.
...
Рейтинг: 0 / 0
25.08.2014, 08:47
    #38727771
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Gustly,

стрелочки стали работать - нагуглил информацию, что они не опознаются именно KeyPress. С KeyDown всё в порядке. Теперь пытаюсь разобраться с механизмом поиска ячейки, в которую нужно переместить.
...
Рейтинг: 0 / 0
26.08.2014, 12:55
    #38728930
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Путем перелопачивания интернета и тыкания наобум написал код:
Код: javascript
1.
if(event.keyCode==40) t = event.target;



который в консоли выдаёт выбранную ячейку. Кто-нибудь может подсказать, каким образом теперь передвинуть курсор? Создавать ещё один True Action с Get Focus? Передадутся ли в него данные? И как лучше это сделать?
...
Рейтинг: 0 / 0
28.08.2014, 06:29
    #38731094
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
В итоге у меня вышел такой код:

Код: 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.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
t = event.target;
if (parseInt(t.id.substr(2, 1)) < 10) z1 = 'f0';
else z1 = 'f';

cell1 = z1 + String(parseInt(t.id.substr(2, 1)));
r='';

for (i=1; i < 5; i++)
   {
      if (t.id.substr(3+i,1) == '0')
         {
            r = r + '0';
         }
      else
         {
            row1 = r + t.id.substr(3+i,4-i+1);
            if (event.keyCode == 38) rn = parseInt(t.id.substr(3+i, 4-i+1)) - 1;
            if (event.keyCode == 40) rn = parseInt(t.id.substr(3+i, 4-i+1)) + 1;
            break;
         }
   }

if (rn < 10) r = '000';
if (rn >= 10 && rn < 100) r = '00';
if (rn >= 100) r = '0';
   
if(event.keyCode==39) //вправо
   {
      cell2 = z1 + String(parseInt(t.id.substr(2, 1)) + 1);
      nid = t.id.replace(cell1, cell2);
      q = document.getElementById(nid);
      q.focus();
      q.select();
   }
if(event.keyCode==37) //влево
   {
      cell2 = z1 + String(parseInt(t.id.substr(2, 1)) - 1);
      nid = t.id.replace(cell1, cell2);
      q = document.getElementById(nid);
      q.focus();
      q.select();
   }
if(event.keyCode==38) //вверх
   {
      row2 = r + String(rn);
      nid = t.id.replace(row1, row2);
      q = document.getElementById(nid);
      q.focus();
      q.select();
   }
if(event.keyCode==40) //вниз
   {
      row2 = r + String(rn);
      nid = t.id.replace(row1, row2);
      q = document.getElementById(nid);
      q.focus();
      q.select();
   }



Текущая проблема в том, что q.select() не выделяют текст в ячейке, на которую перемещается фокус. Если набрать q.select() в консоли, то текст выделяется. В чём может быть причина?
...
Рейтинг: 0 / 0
28.08.2014, 09:41
    #38731176
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Весёлый,

Может нужно 2 раза сделать селект?
...
Рейтинг: 0 / 0
28.08.2014, 10:19
    #38731225
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Gustly,

пробовал - не в этом причина.
Кстати, в ИЕ даже смена фокуса не работает, но это уже второстепенный вопрос.
...
Рейтинг: 0 / 0
28.08.2014, 11:01
    #38731296
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Весёлый,

http://jsfiddle.net/2dm4o8bv/

У меня норм.
...
Рейтинг: 0 / 0
28.08.2014, 12:11
    #38731417
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Gustly,

а у меня вот так:
https://apex.oracle.com/pls/apex/f?p=60219:8:11087646..:::::
Имя: a.veseliy@sibenugol.ru
Пароль: 1234567890
...
Рейтинг: 0 / 0
28.08.2014, 13:07
    #38731513
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Весёлый,

Мой пример работает?

В q что попадает?
...
Рейтинг: 0 / 0
28.08.2014, 13:12
    #38731523
Весёлый
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Gustly,

да, работает.

В q попадает ячейка. Например:
Код: javascript
1.
<input type=&#8203;"text" name=&#8203;"f05" size=&#8203;"16" maxlength=&#8203;"2000" value=&#8203;"7698" id=&#8203;"f05_0003" autocomplete=&#8203;"off">&#8203;
...
Рейтинг: 0 / 0
28.08.2014, 14:43
    #38731671
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Навигация в tabular form
Думаю я, что происходит это из-за собственно стрелочки. То есть фокус - выделили - сработала стрелочка и выделение спало.
Возможные решения:
1) Обрабатывать другое событие - например keyup то есть когда кнопку уже подняли.
2) Делать preventdefault типа чтобы игнорировалось действие.

В 1-м варианте более вероятен успех.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Навигация в tabular form / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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