Google Chrome:如何禁用地址管理自动补全菜单?
I’ve dealt with this exact Chrome behavior before—super frustrating when autocomplete="off" stops working for address fields, especially when you can’t change the address-related placeholder text. Here are the most reliable workarounds that don’t require ditching your required field labels:
Workaround 1: Decoy Hidden Inputs (No JS Needed)
Chrome’s autofill scanner hunts for standard address field names (like street, zip) to trigger that annoying "Manage addresses" menu. We can trick it by adding hidden decoy inputs with those standard names, so Chrome wastes its autofill on those instead of your real user-facing fields:
<!-- Hidden decoy fields to catch Chrome's autofill scanner --> <input type="text" name="street" style="position: absolute; opacity: 0; pointer-events: none;"> <input type="text" name="postal-code" style="position: absolute; opacity: 0; pointer-events: none;"> <!-- Your actual input fields with original placeholders and custom names --> <input type="text" name="customer-street" placeholder="Street" autocomplete="off"> <input type="text" name="customer-zip" placeholder="Destination ZIP" autocomplete="off">
Note: I use position: absolute; opacity: 0; pointer-events: none; instead of plain display: none because some Chrome builds ignore fully hidden elements for autofill scanning. This keeps the decoy "visible" to Chrome’s scanner but completely invisible and un-interactable to users.
Workaround 2: Readonly Toggle with JS
Another solid approach leverages the fact that Chrome won’t autofill readonly fields. We set the field to readonly by default, then remove the attribute when the user focuses it:
<input type="text" placeholder="Street" autocomplete="off" readonly onfocus="this.removeAttribute('readonly'); this.select();" >
Adding this.select() is optional but improves UX—it selects any default text in the field when the user clicks in. The only downside is this relies on JavaScript, so if a user has JS disabled, the field stays locked.
Workaround 3: Non-Standard Autocomplete Values
Chrome respects some non-standard autocomplete values that bypass its default autofill logic. Try using autocomplete="none" or even autocomplete="new-password" (yes, even for address fields):
<input type="text" placeholder="Street" autocomplete="none"> <input type="text" placeholder="Destination ZIP" autocomplete="new-password">
This works because Chrome doesn’t associate these values with address fields, so it skips triggering the autofill menu entirely. It’s the simplest fix, though test it thoroughly in your specific Chrome version—Google occasionally adjusts which non-standard values they respect.
Why autocomplete="off" Stopped Working
Starting in Chrome 78, Google changed how it handles autocomplete="off" for sensitive fields (addresses, passwords, payment info). They now ignore the attribute to enforce better user experience, but this breaks use cases where full autofill disable is a hard requirement.
内容的提问来源于stack exchange,提问作者Christopher Ransom

