JavaScript文本框focus()在保存的浏览器密码中带有水印/背景文本

时间:2015-08-02 00:13:41

标签: javascript jquery html passwords

当用户在浏览器保存的密码中保存网站的电子邮件/密码时,开始键入他的电子邮件,然后单击该建议。应正确填写电子邮件/密码字段。

问题是:密码首先没有正确填写,它显示"密码" (纯文本,水印值)和文本被选中(如切换到非空字段时的TAB)。

但是,例如,如果您按键盘箭头移动光标并取消选择&#34;密码&#34;,则会以*******格式显示正确保存的密码。< / p>

当用户点击他的电子邮件并自动选择密码字段时会触发focus()事件,但我无法弄清楚如何解决此问题,我试图模拟点击密码字段选择&#34;密码&#34;,将光标位置移动到文本框内但没有工作。

这种方法有一个小缺陷:如果用户有密码&#34;密码&#34;它会在模糊时变得可见。你可以通过使用一个空格来避免这种情况(即&#34;插入密码&#34;)。

以下是代码:

$('input[id^="txtLoginPassword"]').each(function () {
this.value = $(this).attr('title');
$(this).addClass('text-label'); //text-label, text-label2 change color only
$(this).focus(function () {
    if (this.value == $(this).attr('title')) {
        $(this).removeClass('text-label');
        $(this).addClass('text-label2');
      }
});

$(this).keydown(function () {
    if (this.value == $(this).attr('title')) {
        this.value = '';
        $(this).removeClass('text-label2');
        if ($(this).attr('title').indexOf("password") >= 0) { $(this).attr('Type', 'password'); }
    }
});
$(this).blur(function () {
    if ((this.value == '') || (this.value == $(this).attr('title'))) {
        this.value = $(this).attr('title');
        $(this).removeClass('text-label2');
        $(this).addClass('text-label');
        if ($(this).attr('title').indexOf("password") >= 0) { $(this).removeAttr('Type'); }
    }
  );
});

0 个答案:

没有答案