我知道这个问题有很多答案。我已经研究了所有禁用谷歌自动完成功能(建议的下拉菜单)的解决方案,例如使用autocomplete = 0ff或autocomplete = false,但没有任何方法可以解决问题。 我创建了一个MVC应用程序,该应用程序具有带有下拉列表和HTML EditorFor的视图。
一种为HTML编辑器添加名称的解决方案有助于删除自动完成功能,但是由于我更改了HTML EditorFor的名称,因此在回传值时遇到了问题。
<div class="col-md-10">
@Html.EditorFor(model => model.Address, new {htmlAttributes = new { @class = "form-control", @id = "show_address", Name = Guid.NewGuid().ToString(), autocomplete = "noped" } })
</div>
有人有针对2019年的解决方案来禁用Google自动填充功能吗?
更新:
我尝试使用html.textboxfor(如下面的第一个解决方案中所述),但是我已经意识到,只有在视图中还有另一个textboxfor时,autocomplete = off才起作用。 如果在同一视图中有多个textboxfor,则在其中任何一个HTML Textboxfor上使用autocomplete = off都不能使它们中的任何一个禁用自动填充!有人可以帮忙吗?
答案 0 :(得分:1)
您尝试了吗?
<%= Html.TextBoxFor(
model => model.date,
new { @class = "aDatePicker", autocomplete = "off" }
)%>
它将生成接近以下内容的标记:
<input type="text" id="date" name="date" class="aDatePicker" autocomplete="off" />
还可以尝试:
//Disable autocomplete throughout the site
$(document).ready(function() {
$("input:text,form").attr("autocomplete","off");
})
答案 1 :(得分:0)
EditorFor有其自身的一些缺点,它在某些情况下不起作用,这是使用TextBoxFor代替EditorFor的更好方法。此外,它也不影响Postback值。(有关详细信息check here)>
@Html.TextBoxFor(model => model.Address, new { @class = "form-control", @id = "show_address", autocomplete = "off" })
更新:检查我更新的演示DEMO
添加autocomplete = off后,仍然有些浏览器会忽略它们,并尝试向您显示一些提示或自动填充。更多信息check this
在自动完成功能中添加一些random_value,因此浏览器将其视为关闭状态。
@Html.TextBoxFor(model => model.Address1, new { @class = "form-control", @id = "show_address", autocomplete = "some_random_value" })
答案 2 :(得分:0)
在VB中,这对我有用(使用C#转换器):
@Html.EditorFor(Function(m) m.Password, New With {.class = "form-control text-center", .autocomplete = "new-password"})
答案 3 :(得分:0)
我想我找到了答案。我为这个解决方案赞扬@Mangesh Ati。我只想为其他感兴趣的人总结解决方案。
autocomplete = off可在所有 Box 上禁用所有@htmlTextBoxFor上的Google自动建议,而对于 address 模型的一部分,则改为使用autocomplete = randomn_string
重要: 如果要在文本框上使用jQuery自动完成功能,那么在.focus上添加autocomplete = randomn_string属性非常重要,如下所示:
$('#show_address').autocomplete({
}).focus(function () {
$(this).attr('autocomplete', 'some_random_value');
});
答案 4 :(得分:0)
<input type="any" readonly onfocus="this.removeAttribute('readonly');">