Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверка внутри формы нужна помощь (https://javascript.ru/forum/dom-window/62488-proverka-vnutri-formy-nuzhna-pomoshh.html)

espltd 13.04.2016 10:35

Проверка внутри формы нужна помощь
 
Добрый день! Подскажите пожалуйста. Есть текстовое поле - textarea

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

На данный момент могу ввести 89197773332;8919777777777773332;89129

а надо, чтобы было именно

89197773332;89197777777;89999999999;89503332211

т.е. чтобы сразу проверка была, что мало ввели или много, желательно, чтобы после 11ти цифр разделитель сам подставился. Всю голову уже сломал( Помогите плиз

Alexander Belov 13.04.2016 10:50

espltd,
Textarea Maxlength, minlength

espltd 13.04.2016 10:58

дак а причем стандартные атрибуты текстареи. Без яваскрипта же не сделать такую задачку?

espltd 13.04.2016 11:38

или я не прав? Подскажите пожалуйста, профессора :)

рони 13.04.2016 11:43

espltd,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
</style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
$(function() {
    $("#area").on("input", function() {
        var text = this.value;
        if (/^(?:\d{11};)+$/.test(text)) return;
        text = text.replace(/\D/g, "").match(/\d{1,11}/g);
        this.value = text ? text.join(";") : ""
    })
});
  </script>
</head>

<body>
<textarea id="area" name="" cols="12" rows="7"></textarea>
</body>
</html>

espltd 13.04.2016 11:59

спасибо больш

espltd 15.04.2016 08:06

а можно ли как-то удалить номер, если он меньше 11ти цифр? Ну это к тому, что можно лишь 11 цифр после точки с запятой забивать?

рони 15.04.2016 08:10

espltd,
вы как определите что номер ещё не введён до конца?

espltd 15.04.2016 08:23

хотя можно условие на php сделать после разделителя, если элемент менее 11ти символов то пропускаем итерацию и идем к следующей

рони 15.04.2016 08:28

espltd,
перед отправкой всё тоже самое только единицу с запятой убрать


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