我们使用jquery input mask from here和一个代码片段,在必要时设置和取消设置掩码:
$('input.maskedInput').focus(function () {
$(this).mask("999-999-9999");
}).blur(function () {
var numbers = $(this).val().replace(/-/g, '').replace(/_/g, '');
$(this).val(numbers.toString()).unmask();
});
这适用于jquery 1.3.2但是当升级到1.8.2时,当用户离开字段时没有错误就停止了取消屏蔽。什么需要调整,以便再次开始取消屏蔽?
答案 0 :(得分:0)
问题是您在另一个模糊处理程序中删除了插件附加的模糊处理程序(通过调用unmask
)。为了避免不可预测的行为,jQuery在运行任何处理程序之前在本地保存对所有处理程序的引用。
我不知道为什么这段代码适用于jq1.3.2。
要避免这种情况,您可以停止模糊事件的立即传播。 http://api.jquery.com/event.stopImmediatePropagation/
.blur(function (ev) {
var numbers = $(this).val().replace(/-/g, '').replace(/_/g, '');
$(this).unmask();
ev.stopImmediatePropagation();
$(this).val(numbers);
})