无法使用 javascript 设置输入字段类型密码和自动完成

Posted

技术标签:

【中文标题】无法使用 javascript 设置输入字段类型密码和自动完成【英文标题】:Cannot set input field with type password and autocomplete using javascript 【发布时间】:2021-08-14 12:36:33 【问题描述】:

我正在通过使用 javascript 填写 Web 应用程序的用户名和密码来开发自动登录功能。密码字段已激活自动完成功能。它的 html 如下 -

<input name="autofill_password" type="password" style="display:none">
<input name="user_password" type="text" onfocus="this.setAttribute('type', 'password')" id="user_password" maxlength="256" class="loginField" autocomplete="new-password">

我无法使用 javascript 或 jquery 为“user_password”字段设置值。 我试过以下没有运气 -

$('#user_password').val("g");
$('#user_password').attr('value', 'new value');
document.getElementById('user_password').value = 'Welcome!1';
document.getElementById('user_password').setAttribute('type', 'text');

是什么阻止了该值的设置,我还能尝试什么?

【问题讨论】:

您显示的代码可以正常工作:jsfiddle.net/RoryMcCrossan/1o5hztg9。检查控制台是否有错误 此外,在客户端 JS 的密码字段中设置自动编译功能对于安全性来说似乎是一个非常糟糕的主意。 @RoryMcCrossan just to showcase that all three approaches work 密码字段的自动完成可能会很复杂并且特定于浏览器。为什么不使用 Lastpass 等浏览器和插件中已经内置的自动完成功能? 实际上我们正在尝试自动化导航和输入到一个无法访问源代码的门户 【参考方案1】:

所以,这适用于像我这样的所有其他傻瓜,问题是,有一个标签与密码字段具有相同的 id。

【讨论】:

以上是关于无法使用 javascript 设置输入字段类型密码和自动完成的主要内容,如果未能解决你的问题,请参考以下文章

Hot Chocolate 无法为输入类型的字段设置默认值

我的输入字段类型编号的大小无法更改[重复]

在javascript的输入数字类型字段中输入值时如何显示输入文本字段?

ABAP选择屏幕字段无法输入负值

ABAP选择屏幕字段无法输入负值

模糊后无法聚焦回输入字段