为什么不应用面膜?

时间:2014-01-09 22:45:32

标签: jquery html maskedinput

我希望在使用jquery.maskedinput插件获得焦点时将mask应用于输入元素。但是第一次聚焦时,面具就不存在了。只有当它第二次接收到焦点时,屏幕才会出现。如何让面具在第一次聚焦时显示?

fiddle

HTML:

 <input type=text id=a />
    <input type=text id=b />

脚本:

$(document).ready(function () {
    $('#a').on('focus', function () {
        $(this).mask('999');
    });
});

1 个答案:

答案 0 :(得分:2)

问题在于窗口小部件使用focus()来添加蒙版。该元素已经集中,因为您在事件发生后进行了注册。

它的工作方式是在创建页面时注册它

$(function () {
    $('#a').mask('999')
});

但是如果你想在onfocus上进行,你需要在删除事件后触发焦点,这样你就不会陷入困境。

$(function () {
    $('#a').on('focus.first', function () {
        $(this).off("focus.first").mask('999').trigger("focus");
    });
});