2

假设我有一个允许用户登录网站的 HTML 表单。该表单不是静态可见的,而是通过Bootstrap Popover按需显示。

除了一个小细节外,这按预期工作:浏览器的密码管理器不提供这种形式的凭据的自动完成(很可能是因为它在页面最初呈现时不可见)。

添加autocomplete="on"到表单和输入元素并没有改变任何东西。

登录表单变得可见后,有什么方法可以再次触发表单完成?

表格如下所示:

<div id="login_popover_content">
  <form accept-charset="UTF-8" action="/users/sign_in" autocomplete="on" class="form-horizontal" id="new_user_popover" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="..."></div>
  <fieldset>
    <div class="control-group">
      <label class="control-label" for="user_login">User</label>

      <div class="controls">
        <input autocomplete="on" class="input-medium" id="user_login" name="user[login]" size="30" type="text">
      </div>
    </div>
    <div class="control-group">
      <label class="control-label" for="user_password">Password</label>

      <div class="controls">
        <input class="input-medium" id="user_password" name="user[password]" size="30" type="password">
        <span class="help-block"><a href="/users/password/new">Forgot your password?</a></span>
      </div>
    </div>
    <div class="control-group">
      <div class="controls pull-right">
        <input class="btn btn-warning pull-right" name="commit" type="submit" value="Login">
      </div>
    </div>
  </fieldset>
  </form>
</div>

弹出窗口显示使用:

$(anchor).popover(
  content: $(content).html()
  placement: 'bottom'
  html: true
  trigger: 'click'
  template: '<div class="popover headless"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>'
)
4

1 回答 1

0

大多数浏览器(如果不是全部)在页面的初始加载时触发自动填充,因此如果在第二个时刻操作 dom,则不会自动填充。一种解决方案是将登录表单放在页面上。

于 2013-03-27T20:55:27.537 回答