Удалить литералы из маски ввода после отправки формы?

этот вопрос уже задан, но решения не ясны.

Im, используя Josh Bush MaskedInput плагин для jQuery

Что я пытаюсь достичь:

Например: телефонный ввод с маской

    $("#txtPhone").mask("(99)9999-9999");

EQUALS: (00) 9398-8373

Я хочу, чтобы он отправил: 0093988373

------ Можно ли удалить маску для отправки, но сохранить значение?

Ответ 1

Я думаю, вы хотите использовать unmask

$("#myForm").submit(function() {
  $("#txtPhone").unmask();
});

Ответ 2

Установите removeMaskOnSubmit как true, когда вы инициализируете входную маску

    $("#txtPhone").inputmask({removeMaskOnSubmit: true});

Ответ 4

Если вы используете завершенный обратный вызов, вы можете просто использовать:

$(element).mask("(99)9999-9999", {
  completed : function () {
    var numbers = this.val().replace(/()-/g,'');
  }
}

В противном случае вы можете использовать:

$(element).val().replace(/()-/g,'');

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

EDIT: Алекс Питти указал на функцию unmask(), которую я должен сказать, намного лучше, чем моя. Я оставлю свой ответ здесь, но я пойду с его решением.

Ответ 5

Вы также можете извлечь необработанное значение на вложенном виде с помощью

$("#YourSelector").data( $.mask.dataName )();

Источник: https://github.com/digitalBush/jquery.maskedinput/issues/318


Пример
Если вы используете вход phone с такой маской:

$(".phone").mask("99 99 99 99 99")

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

$(".phone").data($.mask.dataName)() 
// will produce "0102030405" while the masks displays 01 02 03 04 05

Ответ 6

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

// unmask all inputs, before savinf;
$(FormObj+" input[type=text]").each(function() {
    $(this).unmask();
});

где FormObj - ваш идентификатор объекта формы, такой как #form.

Ответ 7

снятие маски не является функцией Это мой способ использования.

    $('#amount').inputmask('999.999.999.999', {
        numericInput: true,
        autoUnmask: true,
    });