Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )


 
Ответить Новая тема 
> Ловим Enter в поле (не Web), используя JavaScript
Morpheus
Вставить ник
сообщение 6:11:2007, 11:47
Цитата Ответить 


очень злой модератор
Иконка группы

Группа: Lotus team
Сообщений: 3 221
Регистрация: 7:08:2006
Из: Украина, Киев
Пользователь №: 5 807



Репутация:   54  


не так давно была тема про ]]>Ограничение кол-ва вводимых символов в поле]]>

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

Описание

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

// Задаем параметры и начинаем мониторить символы
startListener(this);


2. Пока пользователь находиться в поле ( onBlur - Client ) продолжаем проверять вводимые символы
// Пока пользователь находиться в поле - продолжаем мониторим вводимые символы
if (checkCharCount())
    this.focus();
else
    stopListener();


3. В заголовке формы JS Header - Client пишем большой код
CODE
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);

}



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


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

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

Прикрепленные файлы
Прикрепленный файл  NoSimvol10.rar ( 23.71 килобайт ) Кол-во скачиваний: 64
 
Подняться вверх 
 
Сообщение #1


Ответить  Новая тема 

 

RSS Текстовая версия Сейчас: 2:12:2008 - 20:53

с нами можно связаться по:
телефону: +375-(29)-632-60-67
e-mail:info@codeby.net