Computer Wiz99 Ответов: 3

Как отформатировать текстовое поле маски в jQuery?


У меня есть веб-форма с текстовыми полями, которые маскируются с помощью кода jQuery.

Вот мой код:

<head runat="server">
    <title>jQuery Masked Input Demo</title>
    <script src="Jquery Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script src="Jquery Scripts/jquery.maskedinput.js" type="text/javascript"></script>
    <script type='text/javascript'>
    $(document).ready(function () {
        
            $.mask.definitions['~'] = "[+-]";
            $("#TextBox1").mask("999,999,999,999");
            $("#TextBoxY").mask("999,999,999,999");
 
            $("#TextBox1").blur(function () {
                $("#lblinfo").html(" " + $(this).mask());
            $("#TextBoxY").blur(function() {
             $("#lblinfo2").html(" " + $(this).mask());
        }).dblclick(function() {
            $(this).unmask();
 

        });
    });
});


Как я могу получить код для маскировки любого числа, которое вводит пользователь, без необходимости быть 12 числами?

Пример:

Если у пользователя есть 12 номеров, они введут 123,456,789,101, и маскировка будет работать.
Если у пользователя есть 7 номеров 1,234,567, маскировка должна работать, но это не так. Как я могу заставить jQuery маскировать любое число?

Sergey Alexandrovich Kryukov

Вы имели в виду "12 цифр"?
—СА

Computer Wiz99

Да.

3 Ответов

Рейтинг:
26

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Я не думаю, что плагин поддерживает какое-либо количество символов для маркировки.

Но согласно сайту плагина - МОДУЛЬ ВВОДА МАСКАХ [^]

Цитата:
Вы можете сделать так, чтобы часть вашей маски была необязательной. Все, что указано после"? " в маске, считается необязательным пользовательским вводом. Общий пример для этого-номер телефона + дополнительный добавочный номер.
jQuery(function($){
   $("#phone").mask("(999) 999-9999? x99999");
});
Итак, вы можете поставить знак "?" после 7 символов, это будет работать.


Computer Wiz99

Тадит тире, так что мне придется поставить "?" после всех таких символов, как этот:

<pre lang="HTML">
jQuery(функция($){
$("#телефон").маска("(9?9?9?) 9?9?9?-9?9?9?9? x9?9?9?9?9?");
});
</pre>

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Это работает?

Computer Wiz99

У меня есть этот код для работы, но он начинается слева, а не справа.
Как я могу это исправить?

$.mask.definitions['~'] = "[+-]";
$("#Элемент textbox1").маска('?999,999,999,999');
$("#TextBoxY").mask('?999,999,999,999');

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Пожалуйста, переходите к решению 2. Это гораздо лучше.

Sergey Alexandrovich Kryukov

Это не решение, потому что OP должен позволить пользователю остановить ввод после любого количества цифр, а не фиксированного их количества.

Пожалуйста, смотрите решение 2.

—СА

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Эй, Сергей, плагин, на который вы ссылаетесь, отличается от того, что использовал ОП. Я ответил, принимая это во внимание.

Но плагин, который вы предложили, - это то, что OP должен использовать, на мой взгляд. Хороший ответ Сергей. :)

Sergey Alexandrovich Kryukov

Большое вам спасибо за эту записку. Тогда мой совет будет использовать плагин, который я попробовал. :-)
—СА

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Добро пожаловать. :)

Рейтинг:
19

Sergey Alexandrovich Kryukov

В неверии я просто попробовал jQuery .mask() плагин: http://igorescobar.github.io/jQuery-Mask-Plugin[^].

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

[РЕДАКТИРОВАТЬ]

Тадит заметил, что это другой плагин, не тот, который вы использовали. Тогда я бы посоветовал использовать этот плагин. ;-)

—СА


Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

+5. :)

Sergey Alexandrovich Kryukov

Большое спасибо, Тадит.
—СА

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Добро пожаловать. :)

Рейтинг:
0

Member 14931069

$('[data-type="adhaar-number"]').keyup(функция() {
var value = $(this).val();
значение = значение.заменить(/\Д/Г, "").сплит(/(?:([и\D]{4}))/г).фильтр(ы =&ГТ; с. длина и gt; 0).присоединяйтесь("-");
$(this).val(значение);
});

$('[data-type="adhaar-number"]').on("изменение, размытие", функция() {
var value = $(this).val();
ВАР параметр maxlength = $(это).м("свойство maxlength");
если (значение.длина != maxLength) {
$(этот).добавление("блик-ошибка");
} еще {
$(этот).removeClass("блик-ошибка");
}
});

.highlight-ошибка {
бордюр-цвет: красный;
}