forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общее (http://forum.boolean.name/forumdisplay.php?f=139)
-   -   Как сделать маску для input-элемента (http://forum.boolean.name/showthread.php?t=17436)

JeanWinters 27.10.2012 22:08

Как сделать маску для input-элемента
 
Пытаюсь сделать форму обратной связи. Создал элемент input type="text" , нужно сделать маску или фильтр для того, чтобы человек мог ввести только цифры или другие символы по маске... Как можно это реализовать?

Randomize 27.10.2012 23:02

Ответ: Как сделать маску для input-элемента
 
http://www.xaprb.com/html-input-mask...nput-mask.html

JeanWinters 28.10.2012 21:17

Ответ: Как сделать маску для input-элемента
 
Слишком много кода. А есть что-то "поменьше" ? Подскажите, пожалуйста, функцию перехвата набора с клавиатуры, чтобы пользователь мог вводить только цифры, а не другие символы...

ABTOMAT 28.10.2012 21:51

Ответ: Как сделать маску для input-элемента
 
Вот очень короткий вариант на jQuery в 5 строчек:

https://github.com/RobinHerbots/jquery.inputmask

Phantom 30.10.2012 09:18

Ответ: Как сделать маску для input-элемента
 
JeanWinters, перехвата нажатий клавиш недостаточно, можно же ещё ПКМ -> Вставить, например. Бери одно из уже обкатанных предложенных решений и не парься.

JeanWinters 01.11.2012 19:43

Ответ: Как сделать маску для input-элемента
 
Слишком громоздко получится. Есть ограничения различные, поэтому и хотелось что-то небольшого размера без jquerry и т.д.

ABTOMAT 02.11.2012 00:27

Ответ: Как сделать маску для input-элемента
 
Цитата:

Сообщение от JeanWinters (Сообщение 242130)
Слишком громоздко получится. Есть ограничения различные, поэтому и хотелось что-то небольшого размера без jquerry и т.д.

Ты из клана Искателей Приключений?
Чем тебе jQuery не угодил? Он как раз и создан чтоб было "просто". Упрощает операции и убирает различия между браузерами там где возможно. Благодаря этому можно решить задачу просто, пользуясь такой платформой.
Или можешь писать на "чистом" JS и тогда придётся "сложно".

Насколько я понял, у тебя мало знаний в JS, но зато ты уже где-то узнал, что jQuery, Prototype и вообще большие скрипты — это плохо. Бабки на скамейке сказали, не иначе. У них же рекомендую спросить решение для твоей задачи, ведь наши советы тебе не нравятся.

Т.е. с одной стороны ты искатель готовых решений, но с другой тебе не нравятся библиотеки (которые суть — сборка готовых решений). Пиши тогда собственное решение, да, на onchange вешай и добро пожаловать в зоопарк браузеров. Эта проблема решена в библиотеках, но ведь они, по твоему мнению, слишком нагружают сайт и надо самому париться. Потом расскажешь, понравилось ли.

YellowAfterlife 02.11.2012 05:25

Ответ: Как сделать маску для input-элемента
 
Минималистично волшебный JS подход:
Код:

var field = /* ваше текстовое поле*/,
rx = new RegExp('[^A-Za-z0-9_]'), // регулярное выражение для фильтрации
ff = function() { // функция "фильтрации"
    var s = field.value;
    while (s.match(rx)) s = s.replace(rx, '');
    // для наилучшего эффекта, тут еще нужно вставить обработку выделения в поле
    if (field.value != s) field.value = s;
};
field.oninput = function(e) {
ff(); // запуск фильтрации
setTimeout(ff, 0); // на случай, если это почему-то не сработало, запускаем еще раз на следующем кадре.
}


moka 02.11.2012 05:33

Ответ: Как сделать маску для input-элемента
 
Бери jQuery решения и не парься, что за "религия"?
Иначе реализуй сам, можешь использовать регулярные выражения для фильтрации, можешь завезти массив символов - тут проблема с поддержкой языков и т.п. С регулярными это проще обойти.
Далее тебе нужно нацеплять кучу событий на нажатия кликов и изменение данных самого поля. Также на субмит формы.
И самое главное на стороне сервера делать повторно все проверки, т.к. доверять клиенту никогда нельзя, я например смогу инспектором твой скрипт отредактировать и любые данные в формы вставить, инъекции и т.п. игнорируя твою фильтрацию.

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

Поэтому выход один - учись программировать. Не бывает 100% готовых решений, нету ничего с полки подходящего, и хватить бл**ть баловать всяких директоров и менеджеров этой иллюзией "готовенького" и "OpenSource" они ваще в коде не понимают нихера.
Учись программировать САМ.


Часовой пояс GMT +4, время: 14:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot