是否可以使用代码选择性地禁用文本字段中的自动填充功能?
我正在ASP.Net AJAX中开发我的自定义代码以搜索数据库中的建议,我想阻止用户在文本框中输入时出现浏览器建议。
我正在寻找适用于最现代浏览器(IE 7& 8,Firefox,Safari和Chrome)的解决方案。如果解决方法是在Javascript中,那就没关系。
答案 0 :(得分:30)
查看自动填充HTML属性(在表单或输入标签上)。
<form [...] autocomplete="off"> [...] </form>
编辑:
如今 - 从评论中 - 网络浏览器并不总是尊重自动完成标记定义的行为。这种不尊重可以用一些JavaScript代码包围,但在使用之前你应该考虑一下你想做的事。
首先,字段将在页面加载期间填充,并且只有在页面加载后才会清空。用户将质疑该字段被清空的原因。
其次,这将重置其他Web浏览器机制,例如当您返回上一页时自动填充字段。
jQuery( function()
{
$("input[autocomplete=off]").val( "" );
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="">
<div class="form-group">
<label for="username">Username</label>
<input type="text" id="username" name="username" value="John" autocomplete="off">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="password" value="qwerty" autocomplete="off">
</div>
<input type="submit" value="Login">
</form>
答案 1 :(得分:11)
你可以把它放入你的输入中:
<input type="text" name="off" autocomplete="off">
或在jquery中
$(":input").attr("autocomplete","off");
答案 2 :(得分:5)
此问题有2种解决方案。我在Google Chrome v36上测试了以下代码。
最近版本的谷歌浏览器强制自动填充无论Autocomplete=off
如何。以前的一些黑客不再工作(34个以上版本)
解决方案1:
将以下代码放在<form ..>
标记下。
<form id="form1" runat="server" >
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
...
解决方案2:
$('form[autocomplete="off"] input, input[autocomplete="off"]').each(function () {
var input = this;
var name = $(input).attr('name');
var id = $(input).attr('id');
$(input).removeAttr('name');
$(input).removeAttr('id');
setTimeout(function () {
$(input).attr('name', name);
$(input).attr('id', id);
}, 1);
});
删除&#34; name&#34;和&#34; id&#34;来自元素的属性,并在1ms后将它们分配回来。
答案 3 :(得分:4)
向html autocomplete=off
元素添加input
属性应该这样做。
答案 4 :(得分:1)
这应该适用于每个浏览器
<script type="text/javascript">
var c = document.getElementById("<%=TextBox1.ClientID %>");
c.select =
function (event, ui)
{ this.value = ""; return false; }
</script>
答案 5 :(得分:0)
将AutoCompleteType="Disabled"
添加到您的文本框
答案 6 :(得分:0)
我的解决方法是将密码字段设为普通文本框,然后使用jquery将其转换为焦点上的密码字段:
asp:TextBox runat="server" ID="txtUsername" />
<asp:TextBox runat="server" ID="txtPassword" />
<script>
$("#txtPassword").focus(function () {
$("#txtPassword").prop('type', 'password');
});
</script>
答案 7 :(得分:0)
我已经在 Edge 和 Firefox 中成功测试了这个。
<input type="text" id="cc" name="cc" autocomplete="off">
适用于常规文本输入。
对于密码,您需要使用 autocomplete="new-password"
<input type="password" id="cc1" name="cc" autocomplete="new-password">
答案 8 :(得分:-1)
Place below code above your username control. This will work in call the browser.
<div style="margin-left:-99999px; height:0px;width:0px;">
<input type="text" id="cc" name="cc" autocomplete="off">
<input type="password" id="cc1" name="cc" autocomplete="off">
</div>