如何阻止MudTextField被浏览器自动填充?
解决MudTextField被浏览器自动填充的方案
针对非登录字段被密码管理器自动填充的问题,给你几个实用的解决办法:
给字段添加原生自动填充控制属性
MudTextField底层基于原生input实现,直接通过InputAttributes传递浏览器能识别的autocomplete属性即可:- 公司名字段(CompanyName)用语义化的
autocomplete="organization",明确告诉浏览器这是企业名称,不会触发登录信息填充; - 加密密钥的密码字段,用
autocomplete="new-password",这个是标准的“新密码”标识,浏览器不会用已存的登录密码填充它。
修改后的代码:
<MudTextField @bind-Value="CompanyName" Label="Firma" Variant="Variant.Text" InputAttributes="@(new Dictionary<string, object>() { { "autocomplete", "organization" } })"> </MudTextField> <MudTextField @bind-Value="EncryptionSecret" Label="Krypteringsnøkkel" Variant="Variant.Text" InputType="InputType.Password" InputAttributes="@(new Dictionary<string, object>() { { "autocomplete", "new-password" } })"> </MudTextField>- 公司名字段(CompanyName)用语义化的
顽固浏览器的兜底方案
如果上面的方法还压不住某些浏览器的自动填充,可以用“假字段”技巧:在表单最顶部添加两个完全隐藏的假登录字段,让浏览器优先把内容填到这些看不见的地方:<!-- 放在表单最开头的隐藏假字段 --> <input type="text" style="position: absolute; left: -9999px; top: -9999px;" autocomplete="username" /> <input type="password" style="position: absolute; left: -9999px; top: -9999px;" autocomplete="password" /> <!-- 你的真实MudTextField组件 --> <MudTextField ... /> <MudTextField ... />全局禁用表单自动填充
如果整个表单都不需要任何自动填充,直接给包裹的form标签加autocomplete="off"就行:<form autocomplete="off"> <!-- 你的所有表单组件 --> </form>
内容的提问来源于stack exchange,提问作者George Helmke
相关产品推荐
相关产品推荐

