Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   И опять валидация формы... (https://javascript.ru/forum/events/45601-i-opyat-validaciya-formy.html)

danik.js 07.03.2014 19:12

http://demo.moguta.ru/ - тут кнопка заказа звонка. Для поля телефона используется плагин какой-то. На первый взгляд работает нормально.

kostyanet, поля под части номера - это хорошо. Но только если сделано достойно. Самому лучше делать только если есть лишнее время.
Надо искать готовое. Помню на хабре кто-то презентовал подобный скрипт.

kostyanet 07.03.2014 19:17

Я могу передать номер как мне удобно: 123-456-7890 - не формат - пусть нюхают, пойду в другой магаз. Ну или пока чухался с воплями не тот формат - вообще перехотел покупать.

Но главное - зачем вообще что-то проверять и форматировать? 123-45-67 - значит местный, 1234567 - тоже самое. 6666-333 - кто-то заказал нумерологию и он неделю будет думать как это сгруппировать иначе. Ну и в таком роде.

Не надо проверять форматы, принимайте как есть, не выносите людям мозг за их же деньги. И люди к вам потянутся.

kostyanet 07.03.2014 19:21

Кстати, у нас в городе-спутнике вообще пятизначные еще номера. Попробуй кого-нить поймать там и узнать каков его домашний в федеральном...

Кстати еще, зачем инетлавке мое ФИО? Я когда приду за товаром они ж фио не спросят. Ну впишу я в поля Иосиф Сталин - что изменится?

Терминалы где группировка автоматическая пишут саркастически: проверьте правильность введенного номера - и по-своему хренакс. Проверяй. Деваться некуда, карты теперь не продают.

рони 07.03.2014 20:24

:write:
Ввод номера телефона по шаблону ...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
    <input oninput="proverka(this)" onfocus="setCursorPosition(1, this)">
    <script>
function setCursorPosition(pos, elem) {
        elem.focus();
        if (elem.setSelectionRange) {
            elem.setSelectionRange(pos, pos);
        } else if (elem.createTextRange) {
            var range = elem.createTextRange();
            range.collapse(true);
            range.moveEnd('character', pos);
            range.moveStart('character', pos);
            range.select();
        }
    }

    function proverka(el) {
        var matrix = "(123)456-78-90",
            i = 0,
            val = el.value.replace(/\D/g, '');
        matrix = matrix.replace(/\d/g, function (a) {
            return val.charAt(i++) || "_"
        })
        el.value = matrix;
        i = matrix.lastIndexOf(val.substr(-1));
        i < matrix.length ? i++ : (i = 1)
        setCursorPosition(i, el)
    };
   document.querySelector('input').oninput()
  </script>
</body>

</html>

kostyanet 07.03.2014 20:29

Цитата:

Левша обращается к царю: «…у англичан ружья кирпичом не чистят.
а мы не англичане.

рони 07.03.2014 20:39

kostyanet,
Господин сказочник ваше словоблудие засоряет форум, ваше мнение и обрывки кода говорят что у вас
Цитата:

Сообщение от kostyanet
Просто потрясающее ЧСВ.


Бестолковый 09.03.2014 19:15

Бууууу....
Вот это Вы Господа разошлись ))) Всем спасибо, всё великолепно работает. Вопрос почти что закрыт. Теперь осталось только модальное окно с благодарностью к странице прикрутить, но это уже другой вопрос...

Для справки - тип указываемого номера согласован с заказчиком. Так что тут не моё "хочу" играет роль...
Я вообще говорил клиенту о том, что достаточно ссыль типа mailto на странице сделать и харэ.
Но, поскольку клиент немного примитивен и при слове "Mozilla" меняет памперс (сам знает только IE и данную пагубную традицию менять ни в какую не хочет), а прогами типа Outlook и иже с ними пользоваться не умеет и учиться не хочет, то задан был мне вопрос: Ну а как же вот такой как и я письмо через сайт мне напишет???:blink:

devote 11.03.2014 10:29

Цитата:

Сообщение от Бестолковый
Ну а как же вот такой как и я письмо через сайт мне напишет???

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


Часовой пояс GMT +3, время: 19:38.