• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Отследить нажатие клавиши Enter в поле....

  • Автор темы Duedev
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Duedev

Добрый День, возникла следующая задача.....
есть 2 текстовых поля(Заголовок и Тип) и кнопочка Найти, которая запускает поиск определенных документов в базе по реквизитам Загловок и Тип соотв.

Для простоты использования хотелось бы сделать следующим образом:
вводишь данные в поле Тип, нажимаешь ентер, фокус перескакивает в следующее поле(Заголовок),
заполняешь заголовок нажимаешь ентер, кликается кнопка найти.... т.е как бы такой переход по элементам дизайна.....


Вообщем реализовал пока так.....
1) в JSHeader формы:
=====================================================================
Код:
var useClick;
var newline = String.fromCharCode(10);

var S1;
var CorrectS1;

var S2;
var CorrectS2;

function runSearch()
{
if (document.forms == null ) return;
if (document.forms[0].QsSubject == undefined ) return;

S1 = document.forms[0].QsSubject.value;
S2 = document.forms[0].QsNum.value;
if (S1.indexOf(newline)>=0) 
{
CorrectS1= replace(S1, '\n', '');
document.forms[0].elements['QsNum'].focus();
document.forms[0].QsSubject.value = CorrectS1;


flag=true;
}
if (S2.indexOf(newline)>=0) 
{
CorrectS2= replace(S2, '\n', '');
document.forms[0].QsNum.value = CorrectS2;
document.forms[0].elements['Button_Search'].click();
}
}

function replace(str, from, to)
{
var i = str.indexOf(from);
if (!from || !str || i == -1) return str;
var newstr = str.substring(0, i) + to;
if (i+from.length < str.length) newstr += replace(str.substring(i+from.length,str.length),from,to);
return newstr;
}
=====================================================================[
2)в полях Заголовок и тип, на событиях onFocus:
Код:
useClick = window.setInterval("runSearch()",100);

3)в полях Заголовок и тип, на событиях onBlur:
Код:
window.clearInterval(useClick)

Проблема в том, что если пользователь оставляет фокус в поле Заголовок или Тип и переходит на другой фрэйм, например почту проверить и т.д., работа таймера не прекращается так как не отрабатывает событие onBlur, и рано или поздно вываливается ошибка javaScript


можете в моем случае что-то посоветовать, может быть есть другие пути решения данной задачи?
 
S

Sandr

каждый изобретает велосипед...

Киньте на форму кнопочку пиксельного размера, поставте ей галочку Default и повесте на неё код, который будет устанавливать фокус на нужное Вам поле в зависимости от нужных Вам условий...
 
A

Akupaka

вообще всю жизнь использовали TAB для таких целей... но каждому свое :(
 
D

Duedev

каждый изобретает велосипед...

Киньте на форму кнопочку пиксельного размера, поставте ей галочку Default и повесте на неё код, который будет устанавливать фокус на нужное Вам поле в зависимости от нужных Вам условий...


Боюсь, что это работает только в том случае если форма вызвана в модальном окне..........
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!