如何获得jQuery的MaskedInput UNMASK()函数可以正常工作?
-
24-09-2019 - |
题
我想有一个输入我的网页上,我想有默认情况下,美国电话号码面具。如果最终用户点击一个复选框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();