我们使用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时,当用户没有错误地离开字段时,它会停止取消屏蔽。需要调整哪些内容才能再次开始取消屏蔽?
发布于 2012-12-07 05:22:06
问题是你移除了模糊处理程序(通过调用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);
})http://jsfiddle.net/tarabyte/XgYSz/
https://stackoverflow.com/questions/13752243
复制相似问题