阻止在profile.php上自动填写电子邮件地址

时间:2015-07-09 作者:Kaji

这可能更像是一个网络浏览器问题(Safari是我的主要浏览器),但它非常令人讨厌。

出于某种原因,每当我在个人资料中编辑用户帐户时,我都会在我的一个网站上开发。php它会自动将我的用户帐户的名称加载到我正在编辑的任何帐户的帐户电子邮件字段中。由于它不是有效的电子邮件地址,这会导致它出错,丢失任何更改,除非我返回到用户列表并粘贴到他们的电子邮件地址。

我不知道为什么它首先会自动填充这个领域,更不用说完全无关的东西了。有什么想法吗?怎么解决?

1 个回复
SO网友:fuxia

您可以尝试注入autocomplete 属性转换为该页上的表单元素。有专门的行动:user_edit_form_tag.

add_action( \'user_edit_form_tag\', function() {
    print \' autocomplete="off"\';
});
如果这没有帮助,而且新IE似乎有一个bug,您可以尝试以下解决方案this Stack Overflow answer.

以下是一些未经测试的(!)密码jQuery在页面上总是可用的,所以我们不必处理这个问题。注意,我嵌套了回调注册,因为常量IS_PROFILE_PAGE 仅当操作user_edit_form_tag 实际上已经打过电话了。

add_action( \'user_edit_form_tag\', function() {
    print \' autocomplete="off"\';

    // See https://stackoverflow.com/questions/22817801/how-to-disable-auto-fill-in-safari-7
    $extra_action = IS_PROFILE_PAGE ? \'show_user_profile\' : \'edit_user_profile\';

    add_action( $extra_action, function() {
        ?>
<style>
.douchebag_safari {
    position: fixed;
    width: 1px;
    left: -5000px;
}
.douchebag_safari input {
    width: 1%;
}
</style>
<div class="douchebag_safari">
    <input class="js-clear_field" tabindex="-1" name="e-mail" type="email">
    <input class="js-clear_field" tabindex="-1" name="Ecom_User_Password" type="password">
</div>
        <?php

        add_action( \'admin_print_footer_scripts\', function() {
            ?>
<script>
    jQuery(\'#your-profile\').on(\'submit\', function () {
        "use strict";
        jQuery(\'.js-clear_field\').attr(\'disabled\', \'disabled\');
    }
</script>
            <?php

        });
    });
});

结束

相关推荐

Hide username from users list

我使用以下代码从用户管理中隐藏了用户名列:function modify_user_columns($column) { $column = array( \"cb\" => \"<input type=\\\"checkbox\\\" />\", \"username\" => __(\'Username\'), \"name\" => __(\'Name\'),