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

Я использую плагин MaskedInput Джоша Буша для jQuery в приложении ASP.NET 3.5 Webform.

Как избавиться от литералов в файле code-behind после отправки формы?

Например: телефонный вход с маской $("#txtPhone").mask("(99)9999-9999");

В коде позади:

string customerPhone = txtPhone.Text

Что возвращает меня: (12)3456-7890

Но это то, что я хочу: 1234567890

На странице изменений плагинов написано, что я могу использовать mask() метод без аргументов для архивирования. Но как это сделать из кода?!

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

Мой вопрос не был понятен, поэтому: я хочу отправить на сервер немаскированное значение. Как это сделать?

4 ответа

Решение

Установите для параметра removeMaskOnSubmit значение true при инициализации маски ввода

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

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

$("#txtPhone").inputmask('unmaskedvalue');
customerPhone = new string(customerPhone.ToCharArray()
                             .Where(c => char.IsDigit(c)).ToArray());

То, что я делаю сейчас, с помощью submitHandler (Плагин валидации) для сброса входного значения, например так:

submitHandler: function(form) {
    $("#txtPhone").val($("#txtPhone").mask());
    form.submit();
},

Это решает проблему, но пахнет очень плохо...

Вы можете удалить нечисловые символы с помощью регулярных выражений в.NET, например:

customerPhone = Regex.Replace(customerPhone, "[^0-9]", "");
Другие вопросы по тегам