我们正在开发一个网络应用程序,其中有一个付款页面。
我们有两个文本框,一个用于信用卡号,第二个用于验证码,输入=“密码”。
现在问题是当google-chrome加载页面时,它发现type =“Password”它加载在信用卡文本框中保存电子邮件ID并在验证码中保存密码。
现在尝试解决这个问题,我尝试了类似下面的内容。
<form autocomplete="off">
<asp:textbox autocomplete="off">
以上尝试对我不起作用。我正在谷歌搜索它,但幸运的是,这对我不起作用。
答案 0 :(得分:15)
Chrome现在似乎忽略了自动完成=&#34;关闭&#34;除非它在v34之后的<form autocomplete="off">
标签上。
你不能通过创建一个隐藏的输入作弊。自动完成功能将获得第一个输入文本以填充数据。
方法1:
<form id="" method="post" action="" autocomplete="off">
<input type="text" style="display:none" />
<input type="password" style="display:none">
<asp:textbox autocomplete="off">
</form>
所以把它放在你的文本框之前。
<input type="text" style="display:none" />
方法2:
更改
autocomplete="off"
到
autocomplete="false"
方法3: 浏览器通过只读模式自动填充。
<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
方法4:
用于用户名密码组合。 Chrome启发式查找模式。
<input type="text" onfocus="this.type='password'">
方法5: jQuery的
if ($.browser.webkit) {
$('input[name="password"]').attr('autocomplete', 'off');
$('input[name="email"]').attr('autocomplete', 'off');
}
答案 1 :(得分:1)
如果您想将白色作为输入背景颜色
,这是有效的<input type="password" class="form-control" id="password" name="password" placeholder="Password" readonly onfocus="this.removeAttribute('readonly');" style="background-color: white;">
答案 2 :(得分:1)
这是唯一适用于自动完成和 Chrome 自动填充的解决方案:
它也可以在调用 new this.props.google.maps.places.Autocomplete
在表单标签上添加 autocomplete="off"。
直接在表单内的输入上设置 autocomplete="none" 并在焦点上再次设置属性。
<form autocomplete="off">
<input type="text" autocomplete="none" onfocus="this.setAttribute('autocomplete', 'none');"/>
</form>
答案 3 :(得分:0)
这很好用,也兼容MDL(Material Design Light):
// Fix chrome's ignore on autocomplete=off
$('input[autocomplete=off]').each(function(){
var copy = $(this).clone();
copy.val('');
copy.removeAttr('autocomplete');
copy.insertAfter($(this));
$(this).hide().removeAttr('required id class');
});
答案 4 :(得分:0)
automcomplete="off" or automcomplete="false"
或在输入字段
中定义自动完成 $('input[name="password"]').attr('autocomplete', 'off');//Disable cache
答案 5 :(得分:0)
使用此解决方案
<input type="password" class="form-control auto-complete-off" id="password" name="password" autocomplete="new-password">
答案 6 :(得分:0)
Chrome在某些输入字段的表单级别不支持autocomplete =“ off”。 有两种解决方案:
在您的表单中,如果只有两个或三个字段忽略autocomplete =“ off”,则将字段名称本身用作自动完成值。即autocomplete =
v_tmp = p_df_in_fromfunc1.iloc[i,"Col1"]
与其在每个页面上手动定义字段名称,不如在页面加载时或加载后为所有文本输入输入使用脚本。
<form:input type="text" id="name" path="name" autocomplete="name"/>
答案 7 :(得分:0)
非常简单,您可以按照此操作
let elements = document.querySelectorAll('[autocomplete="off"]');
elements.forEach(element => {
element.setAttribute("readonly", "readonly");
element.style.backgroundColor = "inherit";
setTimeout(() => {
element.removeAttribute("readonly");
}, 500);
})
答案 8 :(得分:0)
在需要文本类型的地方不能使用密码类型吗?不管上面介绍的方法,如果名称相同,Chrome 会无条件地处理自动完成。 所以,我用了一个方法,像这样随机更改名称。
$(document).on('focus click tap'
, 'input[autocomplete][autocomplete!=""]:not([data-oname][data-oname!=""])'
, function() {
var oname = $(this).attr('name');
$(this).attr({"data-oname":oname,"name":"random string"});
// A random string should be set for name above.
}).on('blur', 'input[data-oname][data-oname!=""]', function() {
var oname = $(this).attr('data-oname');
$(this).attr({"name":oname}).removeAttr('data-oname');
});
答案 9 :(得分:0)
这有效:
$(document).ready(function () {
setTimeout(() => {
$('input').attr("readonly", 'readonly');
$('input').attr("onfocus", "this.removeAttribute('readonly')");
}, 100);
});