我正在尝试在我的页面上有一个输入,默认情况下我希望有一个美国电话号码掩码。如果最终用户单击指定他们要输入国际电话号码的复选框,我希望删除该掩码。
我已经尝试了多种方法,但到目前为止都没有成功。在当前的项目中,我使用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的click事件上做什么尝试,它都不会删除掩码。
任何帮助都是非常感谢的。
发布于 2010-04-06 04:13:29
我能够弄清楚让它工作的代码。下面是我现在使用的代码。
<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>发布于 2010-12-04 03:11:02
您不需要将参数传递给unmask函数!在不带参数的情况下使用它,它工作得很好。
$("#OfficePhone").unmask();发布于 2015-01-06 15:15:49
我遇到了同样的问题,对我有帮助的是:
var maskedInput = $("#id").data('mask');
if (maskedInput) {
maskedInput.remove();
}https://stackoverflow.com/questions/2580550
复制相似问题