You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

autocomplete对current-password生效但对new-password无效的问题求助

autocomplete对current-password生效但对new-password无效的问题求助

大家好,我最近卡在一个密码自动补全的问题上,折腾了好一阵都没解决,想请各位大佬帮忙看看:

我想要实现的效果是,在修改密码时(就像Stack Exchange网站上那样),Safari能自动弹出「New Strong Password」的建议。根据MDN的说明,给新密码字段加上autocomplete="new-password"应该就能实现这个功能,但实际测试下来却没生效。

更奇怪的是,Stack Exchange的源码里相关属性甚至还有拼写错误,但它的新密码建议功能却正常工作。我把Stack Exchange的完整HTML复制到自己的Spring Boot + Thymeleaf项目里后,autocomplete="current-password"对应的当前密码字段自动补全是正常的,但新密码字段聚焦时,只显示灰色的钥匙图标——这说明浏览器识别出它是密码字段,但没把它当成「新密码」字段来处理。在Chrome里也是类似的情况,两个密码字段都被识别成普通密码字段,没有新密码建议。

我检查了浏览器控制台,没有任何报错信息。一开始以为是localhost环境的问题,但把页面部署到HTTPS服务器上后,问题依然存在。有意思的是,我把表单部分单独放到测试环境里时,功能却是正常的(能弹出新密码建议)。Stack Exchange页面加载了一些JavaScript,但我实在看不出哪部分会影响自动补全的逻辑。

下面是我复制的完整HTML代码:

<!DOCTYPE HTML>
<html>
<body>
<div class="">
  <div class="subheader">
    <h1>Change Password</h1>
  </div>
  <div id="mainbar">
    <div>Change password for glorfindel@example.com</div>
    <br>
    <form id="se-pw-reset" action="/account/password-reset" method="POST" class="d-flex fd-column gs12 gsy">
      <input type="hidden" name="fkey" value="">
      <input type="hidden" name="guid" value="">
      <div class="d-flex fd-column gs4 gsy wmx3">
        <div class="d-flex fd-column gs4 gsy js-auth-item ">
          <label class="flex--item s-label" for="currentpassword">Current password</label>
          <div class="d-flex ps-relative">
            <input id="currentpassword" class="flex--item s-input" autocomplete="current-password" name="currentpassword" type="password" value="">
            <svg aria-hidden="true" class="s-input-icon js-alert-icon d-none svg-icon iconAlertCircle" width="18" height="18" viewBox="0 0 18 18"><path d="M9 17c-4.36 0-8-3.64-8-8s3.64-8 8-8 8 3.64 8 8-3.64 8-8 8M8 4v6h2V4zm0 8v2h2v-2z"></path></svg>
          </div>
          <p class="s-input-message js-error-message d-none">
          </p>
        </div>
        <div class="d-flex fd-column gs4 gsy js-auth-item ">
          <label class="flex--item s-label" for="password">New password</label>
          <div class="d-flex ps-relative">
            <input id="password" class="flex--item s-input" autocomplete="new-password" name="password" type="password" value="">
            <svg aria-hidden="true" class="s-input-icon js-alert-icon d-none svg-icon iconAlertCircle" width="18" height="18" viewBox="0 0 18 18"><path d="M9 17c-4.36 0-8-3.64-8-8s3.64-8 8-8 8 3.64 8 8-3.64 8-8 8M8 4v6h2V4zm0 8v2h2v-2z"></path></svg>
          </div>
          <p class="s-input-message js-error-message d-none">
          </p>
        </div>
        <div class="d-flex fd-column gs4 gsy js-auth-item ">
          <label class="flex--item s-label" for="password2">New password (again)</label>
          <div class="d-flex ps-relative">
            <input id="password2" class="flex--item s-input" autocomplete="new-password" name="password2" type="password" value="">
            <svg aria-hidden="true" class="s-input-icon js-alert-icon d-none svg-icon iconAlertCircle" width="18" height="18" viewBox="0 0 18 18"><path d="M9 17c-4.36 0-8-3.64-8-8s3.64-8 8-8 8 3.64 8 8-3.64 8-8 8M8 4v6h2V4zm0 8v2h2v-2z"></path></svg>
          </div>
          <p class="s-input-message js-error-message d-none">
          </p>
        </div>
        <p class="fs-caption fc-black-400 mt4 mb4">
          Passwords must contain at least eight characters, including at least 1 letter and 1 number.
        </p>
        <div class="d-flex fd-column gs4 gsy js-auth-item ">
          <button class="flex--item s-btn s-btn__filled" id="submit-button" name="submit-button">
            Change Password
          </button>
          <p class="s-input-message js-error-message d-none">
          </p>
        </div>
      </div>
    </form>
  </div>
</div>
</body>
</html>

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 11:08:01