Как удалить литералы из маски ввода после отправки формы?
Я использую плагин 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]", "");