powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Автопроставление точек в полях с датой
12 сообщений из 12, страница 1 из 1
Автопроставление точек в полях с датой
    #35785454
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Помогите пожалуйста сообразить, как сделать следующее:
Есть поле для воода, куда должна вводится дата в формате ДД.ММ.ГГГГ. Мне нужно, чтобы точки проставлялись автоматом. То есть, когда человек печатает, он бы набирал не "22.11.2008", а "22112008", а точки бы сами ставились после, соответсвенно, второго и пятого символов.
Реально же это реализовать с помощью java script?
Что-то вроде: сначала проверять методом (onchange?) какой символ печатается (вот это и вызывает основную задачку! КАК?), как только попался нужный, вставлять в value точку. Правильно думаю?
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35785571
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ice-covered , могу предложить три варианта ввода даты...
1. Три селекта на день (можно и простым полем) месяц и год (можно и простым полем)
2. Три обычных поля засунуть в спам (или див), убрать все, что напоминает о принадлежности к полю (визуально). Между полями поставить точки. Спам/див оформить как поле ввода (визуально)
3. Рядом с закрытым полем ввода сделать кнопку вызова календаря. При выборе даты в календаре заполнять поле ввода.
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35786156
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ice-covered,

Если ты пользуешься jQuery, то есть ну просто замечательный плагин jquery.maskedinput-1.2.1.js (это последний) - делает все именно так. В поле УЖЕ стоят точки и пользователь просто нажимает "22112008" и все становится на свои места. Более того - там же можешь указать шаблон (только цифры) и пользователь ничего другого не введет.

Если же не пользуешься jQuery, то советую пользоваться :)
А если честно, то накрайняк можно просто распотрошить плагин и ручками сделать. Оно-то и так не очень сложно, но есть кроссбраузерные "нюансы", которые очень поучительно посмотреть в готовых хорошо сделанных либах.

Сайт плагина: digitalbush
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35787299
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Но все немножко не то... =(
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35787333
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ice-covered,
Может велосипед поможет?
Там такое есть.
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35787858
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, что не подошло - очень удобная штука для этого.
Но может подойдет моя более старая поделка для ввода телефонов - формат 999-9999, после ввода третьей цифры автоматом появляется тире. Сделано под jQuery, так что заморочек с эвентом делать не надо.
Предупреждаю: делал под ИЕ7 и проверял только в ИЕ6 и ФФ3, так что за остальное не ручаюсь.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
$(edit).keypress(function(event) {return phoneHandler(event, this)});

function phoneHandler(event, edit) {
	if (event.which <  48  || event.which >  57 ) return false;
	var current_text = $(edit).val();
	current_text = current_text.replace(/\D/g, "").substr( 0 ,  7 );
	$(edit).val(current_text.substr( 0 ,  3 ) + (current_text.length >  2  ? ("-" + current_text.substr( 3 )) : ""));
	if (current_text.length >=  7 ) return false; else return true;
}
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35787932
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, сложно что-то все...
Я придумала в итоге вот простую штуку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function SetDatePoint(obj)
        {
            var v_length=(obj.value).length;
            var v_val=obj.value;
            if ((v_length== 2 )||(v_length== 5 )) 
            {
                obj.value=v_val+".";
            }
        }
вызывается на onKeyUp.
Может, и не очень красиво, но работает, как мне надо...
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35788016
mrJust
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, по идее ещеб добавить
Код: plaintext
1.
 var re = /^[ 0 - 9 ]$/;
if (!re.test(obj.value.toString()) return false; 
как-то так, чтоб только числа вводить можно было
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35788036
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ice-covered,

очень простое решение, надобно доработать.
1) обязательно учесть, что юзер может вводить 09.05.2009, а может и 9.05.2009, 9.5.2009 (т.е. чтобы в этих случаях точки не возникали в неожиданных местах)
2) юзер может начать редактировать поле совершенно произвольным способом (например, ошибся датой, выделил 09.05, нажал del, и появилась точка после оставшегося .2009). Но в принципе это можно оставить на их страх и риск, в зависимости от "солидности" проекта.
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35788083
Evgeniy_SH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделай три выпадающих списка... ;) или скачай какой-нибудь datapicker...
http://www.nsftools.com/tips/DatePickerTest.htm - см. исходный текст html'я
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35791026
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mrJust , спасибо, вот это пригодится..
illion 1) это они вряд ли будут делать, потому как вводить будут, как привыкли, по-старому, только без точек...
2) А вот с этим действительно проблема. Проверять бы, не нажата ли последней клафиша Delete или Backspase.. ?
Evgeniy_SH В том то и дело, что нужно поле одно, а не несколько. Им для удобства нужно, чтобы лишнйи раз пальчиками не водить, мышкой не двигать (ленивые, блин, стали..)
...
Рейтинг: 0 / 0
Автопроставление точек в полях с датой
    #35791114
ice-covered
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доработала немного условие:
Код: plaintext
1.
2.
3.
4.
var KeyID = (window.event) ? event.keyCode : e.keyCode;
            if (((v_length== 2 )||(v_length== 5 ))&&(KeyID!= 46 &&KeyID!= 8 )) 
            {
                obj.value=v_val+".";
            }
Проблема с Delete и Backspase решена...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Автопроставление точек в полях с датой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]