【问题标题】:Detecting autofilled values on document ready检测文档准备好的自动填充值
【发布时间】:2012-06-11 14:32:36
【问题描述】:

我有一个登录页面,我试图在该页面上切换按钮的显示以允许用户修改其角色(从用户的可用角色列表中选择)。

我最初隐藏按钮并在$("#txtUsername").blur() 上显示它。

我的问题:有没有办法获取 Chrome 自动填充的值?

如果我尝试在文档准备好时触发它,则值为空白,并且按钮不显示。

$(function () {
    $("#btnRoles").hide();
    $("#txtUsername").blur(function () {
        if ($(this).val()) $("#btnRoles").show();
        else $("#btnRoles").hide();
    }).trigger("blur");
});

但是文本框然后通过自动填充填充。有什么想法吗?

【问题讨论】:

    标签: jquery google-chrome pageload autofill


    【解决方案1】:

    这将是一个安全威胁:

    遗憾的是,作为一项安全功能,JavaScript 无法访问自动完成输入数据,而是返回空字符串,除非已按下提交按钮(alert(document.loginform.user_logon.value) 将不起作用)。

    source

    【讨论】:

    • 但是我仍然可以在页面加载后使用控制台检查这些值,即使它们已通过自动完成填充。
    • Chrome 控制台没有页面内脚本的一些限制。
    • 页面加载后生效:$(document).click(function () { alert($("#txtUsername").val()); })
    【解决方案2】:

    嗯...如果您只是在#txtUsername 输入中添加了一个autocomplete="off" 属性会怎样?

    【讨论】:

      【解决方案3】:

      在页面加载后,我找不到任何可以读取这些值的内容。我最终通过使用$("#txtUsername").trigger("focus") 强制将焦点放在文本框上,因此当用户执行任何操作时,它会调用.blur() 并填写角色。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 2012-07-27
        相关资源
        最近更新 更多