如何让Chrome尊重我的字段名称,而不是尝试自动完成

n0p*_*0pe 1 forms django google-chrome autocomplete

我的主页上有两种不同的表单:一种用于登录,另一种用于注册.从代码中可以看出,表单具有不同名称的输入:

<h3> Log In </h3>
<form action="/login/" method="POST" class="form-vertical" style="padding-top: 5px">
  <input id="id_login_username" type="text" name="login_username" maxlength="25" />
  <input type="password" name="login_password" id="id_login_password" /><br>
  <button type="submit" class="btn btn-info">Login</button>
</form>

<h3> Sign Up <small>(It's free!)</small></h3>
<form action="/register/" method="POST" class="form-vertical" style="padding-top: 5px">
  <input id="id_register_username" type="text" name="register_username" maxlength="25" />
  <input type="text" name="register_email" id="id_register_email" />
  <input type="password" name="register_password" id="id_register_password" />
  <input type="password" name="register_password2" id="id_register_password2" /><br>
  <button type="submit" class="btn">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

哪个在Chrome中渲染:

在此输入图像描述

是什么导致这个?我该如何解决?

Bur*_*lid 7

这是一个非常好的问题,我很遗憾地说我不知道​​.您是否尝试过注册一次并至少登录一次?如果是这样,那么"可能"就是导致它的原因,因为浏览器完成了"自动成员"功能.

假设启用了自动填充(默认情况下),自动填充其余内容的原因是chrome的自动填充服务器在正则表达式上工作,而不是完全匹配.

可以在中找到用于各种字段的所有正则表达式autofill_regex_constants.cc.utf8.

从那里你可以看到电子邮件字段的表达式"e.?mail"和用户名是"user.?name|user.?id|nickname|maiden name|title|prefix|suffix"