@lexstile

Как ограничить ввод даты(плагин input mask)?

Есть поле - дата.
Маска ввода:
jQuery(".date").mask("99/99", {placeholder: "дд.мм" });

Нужно ограничить ввод значений 99/99:
до слеша max значение: 31
после слеша max значение: 12
Заранее благодарен.
  • Вопрос задан
  • 4229 просмотров
Решения вопроса 2
TroL929
@TroL929
веб-программист
Попробуйте плагин xdsoft.net/jqplugins/datetimepicker Ну или можно использовать Бутсраповский календарь. Сам не пробовал но думаю можно будет приспособить маску без вывода календаря.

Если же использовать input mask то можно отправлять введенное в отдельную функцию, где распарсить строку по числам и проверять их в диапазоне
Ответ написан
progress_man
@progress_man
php – it's my life
На мой взгляд, lexstile, Вам нужно копать в эту сторону. Что-то типа:

$('#input_selector').inputmask({
		mask: "D/M",
		placeholder: "дд.мм",
		definitions: {
			"M": {
				validator: function (chrs, buffer, pos, strict, opts) {
					var valExp = new RegExp("0[1-9]|1[0-2]");
					return valExp.test(chrs);
				},
				cardinality: 2,
				prevalidator: [
					{ validator: "[01]", cardinality: 1 },
					{ validator: "0[1-9]", cardinality: 2 },
					{ validator: "1[012]", cardinality: 2 },
				]
			},
			"D": {
				validator: function (chrs, buffer, pos, strict, opts) {
					var valExp2 = new RegExp("0[1-9]|[12][0-9]|3[01]");
					return valExp2.test(chrs);
				},
				cardinality: 2,
				prevalidator: [
					{ validator: "[0-3]", cardinality: 1 },
					{ validator: "0[1-9]", cardinality: 2 },
					{ validator: "(1|2)[0-9]", cardinality: 2 },
					{ validator: "3[01]", cardinality: 2 },
				]
			},
		}
	});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы