كيفية الحصول على وظيفة jQuery MaskedInput inmask () للعمل بشكل صحيح؟
-
24-09-2019 - |
سؤال
أحاول الحصول على مدخلات واحدة على صفحتي أود الحصول على قناع رقم هاتف أمريكي افتراضيًا. إذا انقر المستخدم النهائي على مربع اختيار يحدده يرغبون في إدخال رقم هاتف دولي ، فأريد إزالة القناع.
لقد جربت طرقًا متعددة ولم أكن نجاحًا حتى الآن. في المشروع الحالي ، أستخدم 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>
يعمل الرمز أعلاه بشكل صحيح لتعيين القناع الافتراضي ، ولكن بغض النظر عن ما أحاول في حدث النقر لـ InternationalOfficePhone ، فإنه لا يزيل القناع.
أي مساعدة هي محل تقدير كبير.
المحلول 2
تمكنت من معرفة الكود للحصول عليه للعمل. فيما يلي الرمز الذي أستخدمه الآن.
<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>
نصائح أخرى
لا تحتاج إلى تمرير معلمة إلى unmask
وظيفة! استخدمه بدون معلمة ويعمل بشكل جيد.
$("#OfficePhone").unmask();
أركض في نفس المشكلة ، وما ساعدني هو:
var maskedInput = $("#id").data('mask');
if (maskedInput) {
maskedInput.remove();
}
حاول استخدام :checked
بدلاً من attr
تحقق ، أعتقد أن هذه هي المشكلة. أعني الاستخدام $('#InternationalOfficePhone').is(':checked')
في حالة IF.
قم بإزالة إدخال الإدخال:
$(selector).inputmask('remove');
أو
var input = document.getElementById(selector);
if (input.inputmask)
input.inputmask.remove()
أو
Inputmask.remove(document.getElementById(selector));
أنا أستخدم Query.maskedInput.js الإصدار: 1.4.1 أشرتhttps://github.com/digitalbush/jquery.maskedinput/blob/bb6bf9b1c3eddd1d2349cee103127ae08d0a877/demo/index.html
يتم الكشف عن طريق $ ("إدخال"). Blur (function () {$ ("#info").
مثال على ذلك
$ ("#pannumber"). قناع ("AAAAA 9999 A") ؛
كشف
$ ("#pannumber"). Blur (function () {
var pannumber = $ (this) .mask () ؛