0

当输入元素通过 jquery.maskedinput 插件获得焦点时,我想将掩码应用于输入元素。但是第一次获得焦点时,面具不在那里。只有当它第二次获得焦点时,面具才会出现。如何使蒙版在第一次获得焦点时显示出来?

小提琴

html:

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

脚本:

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

1 回答 1

2

问题是小部件使用 focus() 来添加掩码。该元素已经聚焦,因为您在事件发生后注册它。

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

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

但是,如果您想在焦点上执行此操作,则需要在删除事件后触发焦点,以免陷入循环。

$(function () {
    $('#a').on('focus.first', function () {
        $(this).off("focus.first").mask('999').trigger("focus");
    });
});
于 2014-01-09T22:53:25.460 回答