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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> маска ввода 
:(
    Опции темы
0510
Дата 1.10.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

Мне нужно решение которое легко можно адаптировать под такую маску ввода: +ДД ЧЧ:ММ:СС
ДД - дни (от 0 до 99) 
ЧЧ - часы (от 0 до 24) 
ММ - минуты (от 0 до 60)
СС - секунды (от 0 до 60)



PM MAIL   Вверх
dsCode
Дата 1.10.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

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



0510, в событиях onKeyDown и onKeyUp у нужного текстового поля - производить нужные действия (можно, исходя из длины - например, если длина текущего значения равна двум (с учетом проверки корректности данных), то автоматом добавлять двоеточие).


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
0510
Дата 2.10.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



dsCode , да.. я примерно представляю как... но возни много (если не "тот" символ желательно его не печатать вообще и проч.), а javascript НЕ основной мой язык
потому и хотелось готовую маску ввода.
Но пока найти не могу
PM MAIL   Вверх
dsCode
Дата 2.10.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

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



0510, приближенное, грубое решение, но суть, думаю, будет ясна (это полностью рабочий пример для маски времени): 

Код

<html>
  <head>
    <title>ds [.code]</title>
    <script type="text/javascript">

      function initTimeFields() {
        for (var i = 1; i <= 3; i++) {
          document.getElementById('test').onkeydown = document.getElementById('test').onkeyup = function(e) {
            return onChangeTime(this, e);
          }
        }
        return true;
      }

      function onChangeTime(time, e) {
        e = e || window.event;
        if (e.keyCode !== 8 && e.keyCode !== 13) {
          var value = time.value;
          if (!value) {
            time.value = '';
            return true;
          }
          if (value.length == 1) {
            if (parseInt(value.charAt(0)) < 0 || parseInt(value.charAt(0)) > 2 || isNaN(value.charAt(0))) {
              time.value = '2';
            }
          }
          if (value.length == 2) {
            if ( isNaN(value.charAt(1)) || (parseInt(value.charAt(0)) == 2 && parseInt(value.charAt(1)) > 3) ) {
              time.value = '23';
            }
          }
          if (value.length == 4) {
            if ( isNaN(value.charAt(3)) || parseInt(value.charAt(3)) < 0 || parseInt(value.charAt(3)) > 5 ) {
              time.value = value.substring(0, 3) + '5';
            }
          }
          if (value.length == 5) {
            if ( isNaN(value.charAt(4)) ) {
              time.value = value.substring(0, 3) + '59';
            }
          }
          if (value.length == 2 || value.length == 5) {
            time.value += ':'
          }
          if (value.length == 7) {
            if ( value.charAt(6) != '' && (isNaN(value.charAt(6)) || parseInt(value.charAt(6)) < 0 || parseInt(value.charAt(6)) > 5) ) {
              time.value = value.substring(0, 6) + '5';
            }
          }
          if (value.length == 8) {
            if ( isNaN(value.charAt(7)) ) {
              time.value = value.substring(0, 6) + '59';
            }
          }
        }
        return true;
      }

    </script>

  </head>
  <body onLoad="initTimeFields(); return true;">
    <input type="text" class="textfield"  id="tets" name="test" maxlength="8" />
  </body>
</html>


Это сообщение отредактировал(а) dsCode - 2.10.2007, 12:17


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
solenko
Дата 2.10.2007, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

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



Управляемый ввод -- мне этот скрипт подошел. Может и вам поможет.

Это сообщение отредактировал(а) solenko - 2.10.2007, 12:55


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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