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

Тема в разделе "Lotus - Программирование", создана пользователем Duedev, 25 дек 2007.

Статус темы:
Закрыта.
  1. Duedev

    Duedev Гость

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

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


    Вообщем реализовал пока так.....
    1) в JSHeader формы:
    =====================================================================
    Код (Text):
    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:
    Код (Text):
    useClick = window.setInterval("runSearch()",100);
    3)в полях Заголовок и тип, на событиях onBlur:
    Код (Text):
    window.clearInterval(useClick)
    Проблема в том, что если пользователь оставляет фокус в поле Заголовок или Тип и переходит на другой фрэйм, например почту проверить и т.д., работа таймера не прекращается так как не отрабатывает событие onBlur, и рано или поздно вываливается ошибка javaScript


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

    Sandr Гость

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

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

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    вообще всю жизнь использовали TAB для таких целей... но каждому свое :(
     
  4. Duedev

    Duedev Гость


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

Поделиться этой страницей