我想有一个输入我的网页上,我想有默认情况下,美国电话号码面具。如果最终用户点击一个复选框specifing他们想进入我要被移除面具一个国际电话号码。

我曾尝试多种方法,并已不成功迄今。在我使用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不卸下面具。

任何帮助十分赞赏。

有帮助吗?

解决方案 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')在如果条件。

删除输入掩码:

$(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/斑点/ bb66bf9b1c3eddd1d2349cee103127ae08d0a877 /演示/ index.html中

的去掩蔽被做 $( “输入”)。模糊(函数(){             $( “#信息”)的HTML( “无色罩的值:” + $(本).mask());

示例 掩蔽

$( “#pannumber”)屏蔽( “AAAAA 9999的”);

取消屏蔽

$( “#pannumber”)。模糊(函数(){

变种pannumber = $(本).mask();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top