Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Управляемый ввод, система проверки полей ввода 
:(
    Опции темы
Alex_B
Дата 2.5.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Предлагаю для использования/обсуждения сиситему маскИрованного ввода информации для HTML форм.
Т.е. ввод данных осуществляется по задданной маске, на подобии как в MaskEdit в C++Builder.

система тестировалась на IE6, Opera 9.10, FF 2.0.0.3

Пример использования

Задание маски:
Используйте следующие специальные символы:
‘`’ – на месте этого символа должна быть цифра (этот символ можно получить нажатием клавиши ‘ё’, при латинской раскладке);
'~' – только русская буква;
'_'- любой символ;

Например, маска для ввода телефона будет выглядеть так:

var mask = ‘(```)```-``-``’;

Назначение проверки:
Разместите на странице поле ввода с уникальным ID:

Код

<input name="Name" type="text" value="" id="unp1">


В обработчик window.onload (или в любой другой, в зависимости от конкретного случая) добавьте строку:
Код

<script type="text/javascript">
    window.onload=function(){
        operatedInput(' unp1','(`~__)`__)'; //назначение проверки
    }
</script>


В CSS страницы включить:
Код

.text_error{
    border: 1px solid #FF0000;
}


Так же есть статья на эту тему:
http://www.maxaman-soft.ru/content/view/26/67/

Готовится к выходу вторая более продуманная версия.
Буду рад, отзывам, предложениям. Надеюсь система будет полезна.



ИСТОРИЯ ВЕРСИЙ
operatedInput v0.2.1
operatedInput v0.2.3
operatedInput v0.2.7
operatedInput v0.2.8 (ДЛЯ ПРИМЕНЕНИЯ)

Это сообщение отредактировал(а) Alex_B - 14.5.2007, 12:15

Присоединённый файл ( Кол-во скачиваний: 71 )
Присоединённый файл  operatedInput001.zip 1,20 Kb
PM MAIL   Вверх
AKS
Дата 2.5.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(Alex_B @  2.5.2007,  17:14 Найти цитируемый пост)
Буду рад, отзывам, предложениям. 

При просмотре кода обратил внимание на такие конструкции (function doRule -> switch statement):
Код

case '_':
    return true;
    break;
case '':
    return false;
    break;

Дело в том, что return прерывает выполнение самой функции. Стоит ли после этого пытаться сделать что-то еще? Думаю, что нет.
Вот такие операции:
Код

var evt = (e) ? e : window.event;

, как мне кажется, можно выполнять на более примитивном уровне:
Код

var evt = e || window.event;

Ну а document.all "люди-энциклопедии" вообще советуют избегать - Avoid document.all
Надеюсь пригодится для "второй, более продуманной версии". smile


PM MAIL   Вверх
Alex_B
Дата 2.5.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



AKS,  спасибо. Ценные замечания, обязательно учту.

Насчет document.all. Это применяется как раз для идентификации IE. Т.е. заведомо изывестно, что document.all применять в других браузерах нельзя
PM MAIL   Вверх
AKS
Дата 2.5.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(Alex_B @  2.5.2007,  18:41 Найти цитируемый пост)
Насчет document.all. Это применяется как раз для идентификации IE.

Я имел ввиду вот эту строку:
Код

var code = (document.all) ? evt.keyCode:evt.charCode;

, в которой можно было бы также обойтись бинарным логическим оператором ИЛИ:
Код

var code = evt.charCode || evt.keyCode;

Мне кажется, что так оптимальней. А ссылку я уж так, на "всякий"...
Кстати, неплохо было бы во второй версии использовать методы attachEvent/addEventListener. IE это будет "по душе", если, конечно, сделать функцию check внешней - во избежание memory leaks...


PM MAIL   Вверх
12345c
Дата 2.5.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 2
Всего: 101



Цитата(AKS @  2.5.2007,  20:01 Найти цитируемый пост)
Кстати, неплохо было бы во второй версии использовать методы attachEvent/addEventListener. IE это будет "по душе", если, конечно, сделать функцию check внешней - во избежание memory leaks...
Кстати, не объясните, в чём глубокий плюс attachEvent в сравнении с присваиванием как свойству (объект.onclick=finction()...;)?

PM WWW   Вверх
S.A.P.
Дата 2.5.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



1. По - моему лучше в атрибутах держать правила.
Что - то типа
Код

<input name="Name" type="text" value="" id="unp1" rule="(`~__)`__" />

ну и потом смотреть элементы с атрибутом rule.

2. Почему RegExp не использовали? Зачем нужно было писать свой парсер?
PM MAIL   Вверх
AKS
Дата 3.5.2007, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(12345c @  2.5.2007,  21:01 Найти цитируемый пост)
в чём глубокий плюс attachEvent в сравнении с присваиванием как свойству

На мой взгляд преимущество очевидно - такой подход (использование attchEvent/addEventListener) предоставляет шанс другим скриптам обрабатывать те же события на том же элементе без "оглядки" на данный сценарий ("а нет ли уже у элемента св-ва, которое я вдруг перепоределю и все сломаю?") . Использование этих методов - это своего рода "жест доброй воли" с нашей с вами стороны, ведь таким образом мы признаем, что мы не единственные, кому может понадобиться обработать события (в данном случае на текстовом поле). 
Вот небольшой пример того, что будет проще:
Код

var fn = el.onclick;
el.onclick = function (e) {
    if (fn) {
        fn(e);
    }
    myFunc(e); // моя функция
}

Вот это я должен написать ("как истинный джентельмен"), чтобы учесть возможно появления вашего сценария на странице перед моим. Или же я могу сделать проще:
Код

el.attachEvent('onclick', myFunc);

Так проще, на мой взгляд. 
Однако я допускаю, что мне что-либо не известно, а поэтому мое мнение вполне может оказаться ошибочным.


Это сообщение отредактировал(а) AKS - 3.5.2007, 04:48
PM MAIL   Вверх
ksnk
Дата 3.5.2007, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(AKS @  3.5.2007,  04:25 Найти цитируемый пост)
как истинный джентельмен

Как истинный джентельмн вы должны были написать больше smile Потому, что совсем не обязательно fn будет функцией, вполне вероятно, что он - строка, которую следует передать eval'у. 
Минус Attach event'а в том, что требуется бороться с memory leak'ами в IE, так что код в простых случаях неоправданно возрастает... 


Это сообщение отредактировал(а) ksnk - 3.5.2007, 09:22


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 3.5.2007, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(ksnk @  3.5.2007,  09:21 Найти цитируемый пост)
вы должны были написать больше

Во! Лучшее, что я мог ожидать в ответ на свое предположение, что  "el.attachEvent - так проще". 
А что за "темная история" со строкой в св-ве, которую нужно передать eval'у?
Цитата

Минус Attach event'а в том, что требуется бороться с memory leak'ами в IE

С утечками памяти бороться придется в любом случае (если мы - "истинные джентельмены" ;) ), а метод attachEvent к ним отношения не имеет (т.е. не он виновник). Об утечках пишут многие "дяди", но ни один не "обвинил" в этом attachEvent. Давайте еще раз вместе почитаем, что такое memory leaks, а то ведь, не дай бог, тут люди прочтут и скажут, что я чего-то плохого насоветовал:
The Internet Explorer Memory Leak Problem 
Understanding and Solving Internet Explorer Leak Patterns
DHTML Leaks Like a Sieve
Javascript memory leaks

PM MAIL   Вверх
ksnk
Дата 3.5.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(AKS @  3.5.2007,  15:28 Найти цитируемый пост)
А что за "темная история" со строкой в св-ве, которую нужно передать eval'у?
 Вот у такого A 
Код

<a onClick='alert("Oops!");return false' href='#'>Click me</a>
, onclick будет не функцией

Цитата(AKS @  3.5.2007,  15:28 Найти цитируемый пост)
а метод attachEvent к ним отношения не имеет (т.е. не он виновник)

Я заметил некую однобокость в предъявленных статьях. Все примеры там связаны с явной генерацией циклических ссылок. Вот  еще одна. Там описан немного другой способ генерировать всякий лишний мусор  smile .
Хочется заметить, что при использовании AttachEvent'а значительно чаще используются анонимные функции


Это сообщение отредактировал(а) ksnk - 3.5.2007, 16:10


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 3.5.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(ksnk @  3.5.2007,  16:08 Найти цитируемый пост)
 Вот у такого 
<a onClick='alert("Oops!");return false' href='#'>Click me</a> onclick будет не функцией

В каком браузере?

PM MAIL   Вверх
ksnk
Дата 3.5.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



AKS, Oops! Про строки - я нагнал :( Очередной рецидив "бытовой логики"... Только что проверил, во всех доступных мне броузерах такие строки становятся анонимными функциями сами...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 3.5.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



 smile 
Цитата(ksnk @  3.5.2007,  16:46 Найти цитируемый пост)
рецидив "бытовой логики"

Ага, так это тот же самый Ksnk, только без заглавной! smile   А я думаю: "Наверно не тот - чего-то тут с маленькой"...  smile
Приветствую на этом форуме!
PM MAIL   Вверх
ksnk
Дата 3.5.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Alex_B
S.A.P., задал правильный вопрос. Почему не использовались RegExp'ы? C ними весь код сократился бы раза в 3-4... 
 smile 
AKS, Приветствую! Мы, традиционно, уводим обсуждение куда-то в сторону smile



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 4.5.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



operatedInput v0.2.1
(для тестирования)

Изменения:
Добавлена возможность экранирования символов маски.
Существенно переработана логика.
Избавился от рекурсии.
Учтены замечания AKS.
Изменены специальные символы.(для большей похожести на MaskEdit в C++Builder)

'/' - эранирование последующего символа
'0' - на месте этого символа должна быть цифра
'R' - на месте этого символа должна быть русская буква


Зачем нужно эранирование?
В случаи если вам необходимо вывести символ маски в поле ввода, а этот символ является специальным поставьте перед ним экран:
Код

var mask = '(/000)000-00-00';

Т.е. все кода телефонных намеров начинаются с нуля: (095)123-23-23 или (022)223-33-11 и т.д.


ToDo List:
Из-за экранировая появилась проблема со стирание введенных символов. Проблема чисто логическая, которую я попытался изложить здесь.
Она сейчас решена дуболомным способом - ведение двух(!) массивов в которые записывается история добавления символов.
(Есть еще и блок-схема, возможно кому-то будет интересно)
Сам код на мой взгляд требует серьезной оптимизации, чего только стоит: if(navigator.appName.indexOf("Opera")!=-1){idel -=1;}
Согласен со всеми что необходимо использовать attachEvent.

Как только выше изложенное разрешится нужно будет составить и реализовать нужные правила, сейчас их только два: '0' - на месте этого символа должна быть цифра и 'R' - на месте этого символа должна быть русская буква.

Добавлено через 11 минут и 30 секунд
Цитата(S.A.P. @ 2.5.2007,  21:30)
1. По - моему лучше в атрибутах держать правила.
Что - то типа
Код

<input name="Name" type="text" value="" id="unp1" rule="(`~__)`__" />

ну и потом смотреть элементы с атрибутом rule.

2. Почему RegExp не использовали? Зачем нужно было писать свой парсер?

1/Хотелось максимально отделить логику от представления. В идеале HTML разметка вобще недолжна содеражать информацию не относящуюся к отображению на экране smile

>Почему RegExp не использовали? Зачем нужно было писать свой парсер?
символ всегда анализируется один, его вроде и так легко проверить.

>S.A.P., задал правильный вопрос. Почему не использовались RegExp'ы? C ними весь код сократился бы раза в 3-4...
ksnk, было бы неплохо - тем более, что теперь он разросся до небес. А можно пример.

Это сообщение отредактировал(а) Alex_B - 4.5.2007, 18:09

Присоединённый файл ( Кол-во скачиваний: 42 )
Присоединённый файл  operatedInput021.zip 1,77 Kb
PM MAIL   Вверх
ksnk
Дата 4.5.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Пожелание. Выкладывайте, pls, работоспособный HTML, который может продемонстрировать работу скрипта. Заставлять народ напрягаться и генерировать нетривиальный тестовый стенд - нечеловеколюбиво ;) Вот, вредный Я придумал такой пример  smile 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script type="text/javascript" src="operatedInput021.js"></script>
</head>

<body>
<input name="Name" style="float:right;" type="text" value="" id="unp1">
</body>
 
<script type="text/javascript">
    operatedInput('unp1','(/000)000-00-00'); //назначение проверки
</script>
</html>


Из багов, которые бросились в глаза.
  • Del в FF не работает
  • после Del в IE нельзя вставить ничего
Цитата(Alex_B @  4.5.2007,  18:04 Найти цитируемый пост)
А можно пример.
 "Автозаполнение" - штука, над которой нужно подумать, простыми Reg'ами не сделать, так что пока - посмотрим / подумаем smile



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 4.5.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Цитата(ksnk @ 4.5.2007,  19:13)
Из багов, которые бросились в глаза.[LIST]
[*]Del в FF не работает
[*]после Del в IE нельзя вставить ничего

О! про дел я вообще забыл...
PM MAIL   Вверх
ksnk
Дата 4.5.2007, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Вообще, кажется, что отдельно такая фенечка не очень интересна. Ее нужно собирать в комплекте с каким-нибудь ToolTip'ом, чтобы демонстрировать ошибки ввода не калеча дизайн...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 4.5.2007, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Цитата(ksnk @ 4.5.2007,  19:48)
Вообще, кажется, что отдельно такая фенечка не очень интересна. Ее нужно собирать в комплекте с каким-нибудь ToolTip'ом, чтобы демонстрировать ошибки ввода не калеча дизайн...

Совершенно согласен.
ToolTip отложил до лучших времен. Функция вывода подскаски вынесена отдельно её будет легко заменить.


Я тут подумал вот о чем:
насколько необходимо эранирование?


Слишком ного оно геморая вызывает. Может вообще от него отказаться? Зарезервировать несколько символов как специальные.
И тогда все будет очень просто - никаких ведений историй, никаких массивов, проблем со стиранием backspace и del.

Останется только ToolTip прикрутить да пару тройку правил добави


И тогда вопрос:
Какие правила нужны?
(может их будет порядка пяти, тогда я думаю можно будет найти зянять несколько символов как специаяльные без потери функциональности)

Пока вижу 4 правила:
-только цифра
-только буква
-только русская буква
-верхний регистр, возможен автоматический перевод в вверхний регистр. (например для первой буквы в поле для ввода фамилии)

Это сообщение отредактировал(а) Alex_B - 4.5.2007, 20:55
PM MAIL   Вверх
AKS
Дата 5.5.2007, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Alex_B, у меня нет, к сожалению, ответов на ваши концептуальные вопросы, но вот по коду кое-что есть. Вы так и оставили функцию check внутренней по отношению operatedInput. А ведь возможно же, что кому-то захочется вызвать operatedInput несколько раз для разных текстовых полей? Если такое произойдет - при каждом вызове будет создаваться новая функция check (своя, так сказать, для каждого поля). А зачем?
PM MAIL   Вверх
Alex_B
Дата 5.5.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



AKS, спасибо!
PM MAIL   Вверх
ksnk
Дата 5.5.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Не знаю, насколько это будет интересно, но вот кусочек документации из довольно прилично развитой системы "шаблонного" ввода. Тут только placeholder'ы для цифр...
Код

Custom Formats
Custom number formats can have one to four sections with semicolons (;) as the list separator. Each section contains the format specification for a different type of number.

Section Description 
First The format for positive numbers. 
Second The format for negative numbers. 
Third The format for zero values. 
Fourth The format for Null values. 


For example, you could use the following custom Currency format:

$#,##0.00[Green];($#,##0.00)[Red];"Zero";"Null"
        
This number format contains four sections separated by semicolons and uses a different format for each section.

If you use multiple sections but don't specify a format for each section, entries for which there is no format will either display nothing or default to the formatting of the first section.

You can create custom number formats by using the following symbols.

Symbol Description 
. (period) Decimal separator. Separators are set in the regional settings in Windows. 
, (comma) Thousand separator. 
0 Digit placeholder. Display a digit or 0. 
# Digit placeholder. Display a digit or nothing. 
$ Display the literal character "$". 
% Percentage. The value is multiplied by 100 and a percent sign is appended. 
E– or e– Scientific notation with a minus sign (–) next to negative exponents and nothing next to positive exponents. This symbol must be used with other symbols, as in 0.00E–00 or 0.00E00. 
E+ or e+ Scientific notation with a minus sign (–) next to negative exponents and a plus sign (+) next to positive exponents. This symbol must be used with other symbols, as in 0.00E+00. 

Еще не страшно?  smile 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 5.5.2007, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



ksnk, такая документация и уменя самого есть.  smile 

Вопрос в том, что конкретно может понадобиться для веба?
(вводить телефон, номер паспорта, ФИО - для этого вполне хватит и 4-х правил, которые написаны выше)
PM MAIL   Вверх
ksnk
Дата 5.5.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Alex_B, Для веба может понадобится все... Деньги, числа (вещественные, в том числе; в разной локали, о ужас!!!), даты ...
Впрочем - делать сразу "на все" - не разумно... Нужно обеспечить достаточно гибкую расширяемость, имея ввиду потенции "больших" систем, и сделать маленькое подмножество, нужное конкретно сейчас. 

Некоторые данные могут бросаться copy-paste'ом, так что гарантировать корректность ввода "побуквенно" - не выйдет.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 5.5.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



ksnk, да... проблема..
Я сейчас попробовал как это сделано у Borland, там если copy-paste'ом встявлять подходящие символы, они вставляются. Если не подходящие, то курсор ввода сдвигается на число вводимых символов но на их местах остаются пробелы.

Как вариант, можно вообще запретить copy-paste.

Это сообщение отредактировал(а) Alex_B - 5.5.2007, 20:21
PM MAIL   Вверх
AKS
Дата 5.5.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(Alex_B @  5.5.2007,  20:20 Найти цитируемый пост)
Как вариант, можно вообще запретить copy-paste.

А может вместо запрета попытаться обработать событие onchange? Проверить регэкспом и оставить лишь валидный фрагмент строки (т.е. кусок строки до первого несоответствия).

PM MAIL   Вверх
ksnk
Дата 5.5.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



AKS, можете предложить вариант регескпа, который с одной строны не был бы велик и ужасен по размеру. а с другой стороны обеспечиват проверку валидности как всей строк , так и "выкусывание" валидных частей... smile

Вряд ли для этого подойдет Regexp. Скорее всего придется городить свой парсер, как вот здесь.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
AKS
Дата 6.5.2007, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 2
Всего: 52



Цитата(ksnk @  5.5.2007,  22:25 Найти цитируемый пост)
можете предложить вариант регескпа

Нет, не могу. В регах у меня (как некоторые выражаются) "уровень: для самых маленьких". smile Но, тем не менее, я бы "попытал счастья"...

PM MAIL   Вверх
Alex_B
Дата 6.5.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



operatedInput v0.2.3
(для тестирования)

Изменения:
(по сравнению с operatedInput v0.2.1)
Добавлена функция searchMaskShant поиска позиции курсора в маске по количеству символов в поле ввода.
Значит проблема удаления символов клавишей Backspace решена. В связи с этим больше нет ведения историй и двух массивов.
Кода стало меньше, логика упростилась

По замечанию ksnk, что система должна быть гибкой и легко расширяемой, экранирование сохранено.

ToDo List
Необходимо вынести функцию check из функции operatedInput (рекомендация AKS).
Решить вопрос стирания клавишей del, ровно, как и ввод символа не в конец строки в поле ввода. Для этого необходимо узнать местоположение курсора в поле ввода и передать его функции searchMaskShant.


Это сообщение отредактировал(а) Alex_B - 6.5.2007, 13:57

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  operatedInput023.zip 1,50 Kb
PM MAIL   Вверх
ksnk
Дата 6.5.2007, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Не вдаваясь сильно в логику приложения, переписал, действительно учитывая пожелания звучавшие в этой ветке smile 


Это сообщение отредактировал(а) ksnk - 6.5.2007, 18:39

Присоединённый файл ( Кол-во скачиваний: 34 )
Присоединённый файл  operatedinput.zip 2,49 Kb


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 7.5.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



К сожалению скрипт ksnk унаследовал все недостатки, и рабочим его назвать нельзя.

Сейчас вижу что идея реализации с самого начала не верна и не могла привести к полностью рабочей версии.
Скоро будет готова новая версия, работающая по другому принципу.

Это сообщение отредактировал(а) Alex_B - 7.5.2007, 22:38
PM MAIL   Вверх
12345c
Дата 8.5.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 2
Всего: 101



Да, я подумал над юзабельностью, и увидел большой недостаток: о шаблонах разговор есть, а шаблона юзеру не видно. Его можно, конечно, написать рядом, но это прошлый век в скриптах. Лучше сделать поле, очень похожее на ввод, чтобы не пришлось объяснять. Наводит юзер на него - там высвечивается шаблон. Кликнул на цифру - замигал курсор или подчёркивание (всё на стилях и таймере). И шаблон цифры продолжает подсвечиваться, только бледно, чтобы не забыл, что цифру надо ввести. Ввёл - фон белый под цифрой, а курсор на следующем допустимом для ввода символе. Затирания (по document.onkeyup), стрелки и delete эмулируются, мышью переходим на цифры. Чтобы при наведении в поле появилось примерно вот это:
Код
<style>
.digit{background:#CA9;border:1px solid #642;padding:2px;margin:1px;color:#ffc}
.symb{background:#A9C;border:1px solid #426;padding:2px;margin:1px;color:#ffc}
.templateInput{border:2px inset;padding:2px;margin:2px}

</style>

<div><tt class=templateInput>
<span class=digit>Ц</span><span class=digit>Ц</span><span class=digit>Ц</span><span class=symb>-</span><span 
class=digit>Ц</span><span class=digit>Ц</span><span class=symb>-</span><span class=digit>Ц</span><span
 class=digit>Ц</span>&nbsp;&nbsp;</tt></div></tt>
Тогда понятно будет, что ввод по шаблону.

Это сообщение отредактировал(а) 12345c - 8.5.2007, 16:29


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
ksnk
Дата 8.5.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



12345c, Такая техника ("выпячивание" шаблона ввода) где-нибудь (не обязательно в WEB- проекте) используется? Если да, то можно какие-нибуь названия - ссылки? Я такого не встречал smile


Alex_B, Мой скрипт был не исправлением логики парсера, а скорее демонстрацией принципа "гибкости". Парсер ввода - отдельно, тултип - отдельно. И еще для полноты картины - возможность множественных полей ввода на страничке. Если что-то понравилось, я буду рад, если это что-то появится/останется и в следующих версиях скрипта smile 
Цитата(Alex_B @  7.5.2007,  22:38 Найти цитируемый пост)
Скоро будет готова новая версия, работающая по другому принципу.
 Ждем'с  smile 



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 8.5.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



ksnk, спасибо, только воспользоваться я кодом пока не могу, он сложен для меня, разбираться пока не стал.

"выпячивание" это как раз нормальное явление, в C++Builder MaskEdit (откуда и пришла сама идея) как раз сделано "выпячивание". И в поле ввода всегда выделено место куда будет вводится символ. Т.е. всегда происходит замена символа в поле на вводимый. 
Вот это и есть новый принцип: что бы пользователь ни нажимал (смивол, цифра, del, backspace) всегда должна происходить только замена выделенного символа.
PM MAIL   Вверх
12345c
Дата 8.5.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 2
Всего: 101



ksnk, в бланках заполнения всяких банковских квитанций, личных данных в билетах (авиа), где нужно чётко по шаблону прописать данные, чтобы понять могли самые разные культуры и люди.

Далее, в Ворде каким-то образом составляют бланки, в которых можно писать в строго заданных полях (правда, что угодно, если только скрипты (макросы) не использовать.


Alex_B, > смивол, цифра, del, backspace
не совсем так - последние 2 клавиши всеми понимаются как управляющие, поэтому нормально, если поле от них очистится, а курсор передвинется назад.
PM WWW   Вверх
Alex_B
Дата 13.5.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



operatedInput v0.2.7


Изменения:
-Полностью переработана логика.
-Наконец то появилась функция синхронизирующая маску с полем ввода, т.е. одному символу в поле ввода соответствует один символ в синхронизированной маске. Это сильно упрощает поиск правила для вводимого символа (visualizationMask).
-Так как пользователь может захотеть ввести символ не только в конец поля ввода, а и куда-нибудь посередине, добавлено отслеживание курсора ввода.
-Del и Beckspace работают корректно
-Возможно перемещение курсора ввода стрелками или мышкой (теперь это не вызывает сбоев как раньше)
-Предусмотрено получение фокуса кнопкой Tab.(выделяется все поле – после попытки ввести символ - курсор ввода ставится на первую позицию для ввода)
-Маска ввода теперь видна. Специальные символы в ней заменяются указанным разработчиком символом.

Способ применения:
Код

operatedInput('mask','(/000)000-00-00','_');

mask – уникальный ID поля ввода;
(/000)000-00-00 – маска ввода
Третий аргумент функции _ - символ замены специальных символов для визуализации маски

Пример использования:
Код

<html>
<head>
    <title>jsMask</title>
    <script type="text/javascript" src="operatedInput028.js"></script>
    <script type="text/javascript">
    window.onload=function(){
        operatedInput('mask','(/000)000-00-00','_');
    }
    </script>
<style type="text/css">
.text_error{
    border: 1px solid #FF0000;
}
</style>
</head>
<body>
<input name="Name" type="text" value="asas" id="mask">
</body>
</html>



ToDo List
Это как раз тот случай когда код вышел из под контроля. Много повторяющихся кусков. Но это не самое страшное.
Курсор ввода теперь – это выделенный символ в поле ввода. После ввода очередного символа, это выделение сдвигается вправо. Этот сдвиг происходит по событию onkeyup. Вот это и есть проблема – если быстро и бездумно давить на клавиши, то курсор ввода не успевает переместиться и система дает сбой.



ПРОСЬБА:
Прошу помочь разобраться с описанной выше проблемой. Нужно как-то изменить функцию проверки ввода, а именно найти способ как передвинуть курсор ввода не по событию onkeyup.
Вот этот кусок кода:
Код

//непосредственно проверка ввода
var permit = true;
function doRule(e){
    var evt = e || window.event;
    var code = evt.charCode || evt.keyCode;
    var rule = getMaskChar(input,synchronizeMask);
    switch (rule){
        case '0':
            if ((code < 48) || (code > 57)){mark2(inputID,'ожидается цифра');permit = false;}
            break;

        case 'R':
            if ((code < 1040) || (code > 1103)){mark2(inputID,'ожидается русская буква');permit = false;}
            break;

        default:
            permit = false;
            break;
    }
    return permit;
}//end непосредственной проверки ввода
input.onkeypress = doRule;

input.onkeyup = function(e){
    input.onkeypress = null;
    ...
    setSelectionRange(input,Selection.end,Selection.end+1);   //сдвигаем выделение вправо
    ...
}


Возможно, есть какой-то другой способ, например, запретить ввод, если в поле ввода нет выделения?? Буду благодарен за идею.
(сделаем крутую систму, все подпишимся и будет  good smile )

Это сообщение отредактировал(а) Alex_B - 14.5.2007, 12:21

Присоединённый файл ( Кол-во скачиваний: 35 )
Присоединённый файл  operatedInput027.zip 2,77 Kb
PM MAIL   Вверх
ksnk
Дата 13.5.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Кое-кто говорил, что мой код слишком сложен smile
На правах идеи - по onkeydown сохранять предыдущее значение value, по onkeyup - измененное. Если последнее не подходит - ругаемся. Никаких selection'ов и и прочей странной магии. По разнице введенных данных и с учетом маски можно понять (надеюсь) что-же было введено.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
linuxer
Дата 13.5.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



Цитата(Alex_B @ 13.5.2007,  09:51)
Возможно, есть какой-то другой способ, например, запретить ввод, если в поле ввода нет выделения?? Буду благодарен за идею.
(сделаем крутую систму, все подпишимся и будет  good smile )

Ну чтоб ввод был совсем уж управляемый, можно "съесть" keyCode, а символ(ы) вставить(удалить) самому

Добавлено через 10 минут и 47 секунд
Цитата(Alex_B @ 13.5.2007,  09:51)
operatedInput v0.2.7

ещё недоработка:
при нажатии ctrl/shift (или при переключении раскладки), 
сообщения об ошибке не приходит, но курсор перемещается на следующий символ
PM MAIL   Вверх
Alex_B
Дата 14.5.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



operatedInput v0.2.8
(РАБОЧАЯ)

Изменения:
По сравнению с operatedInput v0.2.7
-Добавлена корректная работа с быстрым и бездумным давлением на клавиши – система не дает сбоя.
-Добавлена корректное выполнение нажатий ctrl/ shift /переключении раскладки/ tab

Поддерживаются следующие специальные символы для задания маски:
0 – только цифра
R – только русская буква
- экранирование символа

Пример использования такой же как и operatedInput v0.2.7

ToDo List
Версия рабочая и пригодна для использования, однако требуются изменения – добавить правил, подсказку оформить как tooltip, возможно привести код в порядок.

Это сообщение отредактировал(а) Alex_B - 14.5.2007, 12:22

Присоединённый файл ( Кол-во скачиваний: 216 )
Присоединённый файл  operatedInput028.zip 2,82 Kb
PM MAIL   Вверх
ksnk
Дата 14.5.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Действительно, работает. smile Не без приглючений, правда. Из оставшихся багов накопалось пока:
  • copy-paste. Можно вставить что-нибудь в поле безнаказанно. Может, по onBlur тоже проверять?
  • Нет разумной возможности очистить поле ввода.
  • Нет возможности отметить поле ввода и скопировать его


 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 14.5.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Цитата(ksnk @ 14.5.2007,  16:27)
Действительно, работает. smile Не без приглючений, правда. Из оставшихся багов накопалось пока:

  • copy-paste. Можно вставить что-нибудь в поле безнаказанно. Может, по onBlur тоже проверять?
  • Нет разумной возможности очистить поле ввода.
  • Нет возможности отметить поле ввода и скопировать его

>Нет разумной возможности очистить поле ввода.
А как должна выглядеть разумная очистка ввода?
Сейчас можно стирать Backspace  и del

>Нет возможности отметить поле ввода и скопировать его
Я и не думал, что это может понаджобиться. Спасибо за идею.

>copy-paste. Можно вставить что-нибудь в поле безнаказанно. Может, по onBlur тоже проверять?
А вот тут сложная задача...
PM MAIL   Вверх
ksnk
Дата 14.5.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(Alex_B @  14.5.2007,  17:09 Найти цитируемый пост)
А как должна выглядеть разумная очистка ввода?
Сейчас можно стирать Backspace  и del
 Иногда хочется не вводить в поле ничего. Обычно это делается кнопкой Del на полностью выделенном поле smile Сейчас этого сделать нельзя. 




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 14.5.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Поиск MaskEdit'а в интернете дал тот факт, что в
проекте Tapestry (некий фреймворк для разработки WEB приложений) содержится MaskEdit для input'а. Препарирование сего проекта дало вот этот код.
Ногами - не бить , моего тут - только HTML.  smile 

Присоединённый файл ( Кол-во скачиваний: 85 )
Присоединённый файл  MaskEdit.zip 3,82 Kb


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 14.5.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Цитата(ksnk @ 14.5.2007,  20:01)
Поиск MaskEdit'а в интернете дал тот факт, что в
проекте Tapestry (некий фреймворк для разработки WEB приложений) содержится MaskEdit для input'а. Препарирование сего проекта дало вот этот код.
Ногами - не бить , моего тут - только HTML.  smile

В опере не работает, в IE блокирует как потенциально опасное содержимое
PM MAIL   Вверх
ksnk
Дата 14.5.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(Alex_B @  14.5.2007,  21:39 Найти цитируемый пост)
В опере не работает, в IE блокирует как потенциально опасное содержимое

Я не хочу сказать, что это крутой продукт smile , однако кое-какие решения вполне можно оттуда позаимствовать. 
А вот про потенциально опасное содержимое поподробнее можно? Вроде ничего, кроме обычного javascript'а там нет.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Alex_B
Дата 14.5.2007, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



Цитата(ksnk @ 14.5.2007,  22:10)
Цитата(Alex_B @  14.5.2007,  21:39 Найти цитируемый пост)
В опере не работает, в IE блокирует как потенциально опасное содержимое

Я не хочу сказать, что это крутой продукт smile , однако кое-какие решения вполне можно оттуда позаимствовать. 
А вот про потенциально опасное содержимое поподробнее можно? Вроде ничего, кроме обычного javascript'а там нет.

а может и нет smile , я его открыл в  IE и браузер его заблокировал- сверху такая полска появилась "Разрешить заблокированное содержимое которое потенциально опасно" (по его мнению)
PM MAIL   Вверх
ksnk
Дата 14.5.2007, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 2
Всего: 386



Цитата(Alex_B @  14.5.2007,  22:27 Найти цитируемый пост)
которое потенциально опасно
 Угу. Это - обычная паранойя IE  smile 
В заголовке скрипта стоит дата его создания - 2002 год. Это несколько объясняет довольно прямолинейный (по нынешним временам) стиль...


Это сообщение отредактировал(а) ksnk - 14.5.2007, 22:39


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
linuxer
Дата 15.5.2007, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



Цитата(Alex_B @ 14.5.2007,  12:12)
operatedInput v0.2.8
(РАБОЧАЯ)

smile 
backspace/delete в отличие от о стальных могут залипать и не только стирают всё, но и приводят к зависанию
PM MAIL   Вверх
KoLoB
Дата 28.5.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.4.2006

Репутация: нет
Всего: нет



Почему развитие проекта приостановлено?

Кстати вот уже нашёл и немного подправил скрипт, делающий похожее, но возник ряд ошибок, которых не могу разрешить...
Помогите, ведь есть возможность сделать действительно полезную работающую систему.
http://forum.vingrad.ru/forum/topic-153144...sk-firefox.html
PM MAIL   Вверх
Alex_B
Дата 8.5.2008, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.4.2007

Репутация: 1
Всего: 1



PM MAIL   Вверх
yarbala
  Дата 29.5.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.5.2008

Репутация: нет
Всего: нет



http://digitalbush.com/projects/masked-input-plugin  - я в шоке, все просто и красиво

вот пример
Код

<html>
<head>
    <title>jsMask</title>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="jquery.maskedinput-1.1.3.js"></script>
</head>
<body>
<script language="javascript" type="text/javascript">
jQuery(function($){
   $("#date").mask("9999 999999999 9");
});

</script>

<input name="Name" type="text" value="3012 005120000 7" id="date">
</body>
</html>


Это сообщение отредактировал(а) yarbala - 29.5.2008, 16:50
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема »


 




[ Время генерации скрипта: 0.2224 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.