Ловим Enter в поле (не Web)

morpheus

скриптописец
07.08.2006
3 915
1
#1
не так давно была тема про Ограничение кол-ва вводимых символов в поле

Теперь я нагло перековырял лежащую там базу и зделал перехват нажатия Enter в поле в клиете Нотес
с помощтю JavaScript

Описание

Принцип действия
1. Пользователь заходит в поле( onFocus - Client ) и мы передаем параметр текущего поля в процедуру на JS. Запускаем мониторинг

Код:
// Задаем параметры и начинаем мониторить символы
startListener(this);
2. Пока пользователь находиться в поле ( onBlur - Client ) продолжаем проверять вводимые символы
Код:
// Пока пользователь находиться в поле - продолжаем мониторим вводимые символы
if (checkCharCount())
this.focus();
else
stopListener();
3. В заголовке формы JS Header - Client пишем большой код
[codebox]var listenField; // Само поле которое мы будем мониторить
total = 0; // длинна строки


/*
Начинаем мониторить то что нажимает юзверь
параметр один :

field -- Ссылка на поле, (используем "this" из события
onFocus или document.forms[0].fieldName)

Что бы запустить моиториг, в событии onFocus прописать
startListener(this);
*/
function startListener (field) {
listenField = field;
checkCharCount();
}


/*
Обнуляем переменные для того чтобы оставновить мониторинг
*/
function stopListener () {
listenField = null;
}


/*
Проверка на Enter
*/
function checkCharCount () {
// Раз поля нету - выходим
if (listenField == null)
return false;

total = parseInt( listenField.value.length ); // Берём длинну строки
ssymbol = listenField.value; // Берём строку

if ( total > 0 ) { // Если хоть чтото введено
if ( ssymbol.charCodeAt(total - 1) == 10 ) { // Если последний символ - Enter
var NoSimvol10 = ssymbol.substring( 0, total - 1 ); // Берём все символы кроме последнего
listenField.value = NoSimvol10; // Заменяем значение поля, на значение без Enter'a
document.forms[0].Myb.click(); // Кликаем на кнопке которая имеет id и Name - Myb
// return true;
}
}

// ждём 500 милисекунд
setTimeout("checkCharCount()", 500);

}[/codebox]


Коментарии
В поле мы должны заходить НЕ сразу при открытии формы, т.к. иначе не произойдет onFocus
Это пробная версия, возможо чтото можно и улучшить


Автор
Morpheus
спасибо Ronchik за моральную поддержку )

Обсуждение
тут
 

Вложения