Как заставить функцию jQuery MaskedInput unmask () работать правильно?
Я пытаюсь иметь один вход на моей странице, что я хотел бы иметь маску номера телефона США по умолчанию. Если конечный пользователь нажимает флажок, указывающий, что они хотели бы ввести международный номер телефона, я хочу, чтобы маска была удалена.
Я пробовал несколько способов и до сих пор не увенчался успехом. В текущем проекте я использую jQuery для скрытия / отображения совершенно другого ввода. Но мне не нравится этот вариант и хотел бы более рациональный подход.
Я использую следующие:
jQuery 1.4.1 (Скоро обновление до 1.4.2) и jQuery.MaskedInput-1.2.2
<script type="text/javascript">
$(document).ready(function($) {
if ($("#InternationalOfficePhone").attr('checked') == false) {
$("#OfficePhone").mask("(999) 999-9999? x99999");
}
});
$("#InternationalOfficePhone").click(function() {
if ($("#InternationalOfficePhone").attr('checked') == true) {
//$("#OfficePhone").mask(); //doesn't work
//$("#OfficePhone").unmask(); //doesn't work
$("#OfficePhone").unmask("(999) 999-9999? x99999"); //doesn't work
} else {
$("#OfficePhone").mask("(999) 999-9999? x99999");
}
});
</script>
код выше работает правильно, чтобы установить маску по умолчанию, но независимо от того, что я пытаюсь на событии click для InternationalOfficePhone, он не удаляет маску.
любая помощь очень ценится.
6 ответов
мне удалось выяснить код, чтобы заставить его работать. Ниже приведен код, который я использую сейчас.
<script type="text/javascript">
$(function($) {
$("#OfficePhone").mask("(999) 999-9999? x99999");
$("#InternationalOfficePhone").click(function() {
var mask = "(999) 999-9999? x99999";
if ($("#InternationalOfficePhone").is(':checked')) {
$("#OfficePhone").unmask(mask);
} else {
$("#OfficePhone").mask(mask);
}
});
});
</script>
попробуйте использовать :checked
вместо attr
проверить, я думаю, что это проблема. Я имею в виду использовать $('#InternationalOfficePhone').is(':checked')
в условии if.
Я запускаю ту же проблему, и то, что помогло мне:
var maskedInput = $("#id").data('mask');
if (maskedInput) {
maskedInput.remove();
}
удалите маску ввода:
$(selector).inputmask('remove');
или
var input = document.getElementById(selector);
if (input.inputmask)
input.inputmask.remove()
или
Inputmask.remove(document.getElementById(selector));
Я использую запрос.maskedinput.версия js: 1.4.1 Я говорил https://github.com/digitalBush/jquery.maskedinput/blob/bb66bf9b1c3eddd1d2349cee103127ae08d0a877/demo/index.html
разоблачение сделано $("вход.)"размытие (функция() { $("#информация.)"html ("Unmasked value:" + $(this).mask());
пример Маскирование
$("#pannumber").маска("ааааа 9999 a");
разоблачение
$("#pannumber").размытие(функция() {
var pannumber= $(this).mask() ;