¿Cómo hacer que la función de máscara enmascarada jQuery MaskedInput funcione correctamente?

Estoy intentando tener una entrada en mi página que me gustaría tener una máscara de número de teléfono de EE. UU. De forma predeterminada. Si un usuario final hace clic en una checkbox especificando que desea ingresar un número de teléfono internacional, deseo que se quite la máscara.

He intentado de varias maneras y hasta el momento no he tenido éxito. En el proyecto actual, estoy usando jQuery para ocultar / mostrar una entrada completamente diferente. Pero no me gusta esa opción y me gustaría un enfoque más racional.

Estoy usando lo siguiente:

jQuery 1.4.1 (se actualizará pronto a 1.4.2) y jQuery.MaskedInput-1.2.2

 $(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"); } });  

El código anterior funciona correctamente para establecer la máscara predeterminada, pero no importa lo que pruebe en el evento de clic para el InternationalOfficePhone, no elimina la máscara.

Cualquier ayuda es muy apreciada.

¡No es necesario pasar un parámetro a la función de unmask ! Úsalo sin un parámetro y funciona bien.

 $("#OfficePhone").unmask(); 

Pude averiguar el código para que funcione. A continuación se muestra el código que estoy usando ahora.

  

Intente usar :checked lugar de attr check, creo que ese es el problema. Me refiero a usar $('#InternationalOfficePhone').is(':checked') en la condición if.

Me encontré con el mismo problema, y ​​lo que me ayudó fue:

  var maskedInput = $("#id").data('mask'); if (maskedInput) { maskedInput.remove(); } 

Eliminar la máscara de entrada:

 $(selector).inputmask('remove'); 

o

 var input = document.getElementById(selector); if (input.inputmask) input.inputmask.remove() 

o

 Inputmask.remove(document.getElementById(selector)); 

Estoy usando query.maskedinput.js Versión: 1.4.1 Me referí https://github.com/digitalBush/jquery.maskedinput/blob/bb66bf9b1c3eddd1d2349cee103127ae08d0a877/demo/index.html

el desenmascaramiento se realiza mediante $ (“input”). blur (function () {$ (“# info”). html (“Valor sin enmascarar:” + $ (this) .mask ());

ejemplo de enmascaramiento es

$ (“# pannumber”). mask (“aaaaa 9999 a”);

Desenmascaramiento

$ (“# pannumber”). blur (function () {

var pannumber = $ (this) .mask ();

Intereting Posts