Jquery 禁用与inputmask组合的自动完成

Jquery 禁用与inputmask组合的自动完成,jquery,jquery-plugins,browser,Jquery,Jquery Plugins,Browser,我使用输入掩码jQuery插件为某些字段提供输入规则,例如 $(".year").mask("9999",{placeholder:"Y"}); 但是,与插件文档所暗示的相反,该字段没有在焦点上选择其内容。因此,我在脚本中添加了另一行: $("input[type=text]").focus(function(){ this.select(); }); 然而,这似乎也不起作用。我又玩了一会儿,注意到这些字段[有时]被浏览器预先填充了值。但是,我无法关闭autocomplete,但我怀

我使用输入掩码jQuery插件为某些字段提供输入规则,例如

$(".year").mask("9999",{placeholder:"Y"});
但是,与插件文档所暗示的相反,该字段没有在焦点上选择其内容。因此,我在脚本中添加了另一行:

$("input[type=text]").focus(function(){
    this.select();
});
然而,这似乎也不起作用。我又玩了一会儿,注意到这些字段[有时]被浏览器预先填充了值。但是,我无法关闭autocomplete,但我怀疑这就是为什么没有选择内容的原因-浏览器正在将内容添加到焦点上的字段中,这是在jQuery之后触发的

如何从这些字段关闭自动完成?我试着加上:

autocomplete="off"
但它似乎不起作用(在Firefox和Chrome中测试)。在IE中,将其添加到各个字段似乎有效,但输入掩码验证无效。

该解决方案简单,在所有浏览器中都能完美工作,至少对我来说:)

  • 将禁用属性添加到表单字段(电子邮件、密码等)


  • 如果您使用的是jQuery,请尝试关闭自动完成,如下所示:

    $("input[type=text]").autocomplete("option", "disabled", true);
    
    function getRidOffAutocomplete(){
    
        var timer = window.setTimeout( function(){
            $('.year').prop('disabled',false).mask("9999",{placeholder:"Y"});
            clearTimeout(timer);
           },
           800);
    }
    
    // Invoke the function
    getRidOffAutocomplete();
    
    $("input[type=text]").autocomplete("option", "disabled", true);