كيفية الحصول على وظيفة jQuery MaskedInput inmask () للعمل بشكل صحيح؟

StackOverflow https://stackoverflow.com/questions/2580550

سؤال

أحاول الحصول على مدخلات واحدة على صفحتي أود الحصول على قناع رقم هاتف أمريكي افتراضيًا. إذا انقر المستخدم النهائي على مربع اختيار يحدده يرغبون في إدخال رقم هاتف دولي ، فأريد إزالة القناع.

لقد جربت طرقًا متعددة ولم أكن نجاحًا حتى الآن. في المشروع الحالي ، أستخدم 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 () ؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top