Chrome太过热心,认为我的HTML表单包含信用卡信息,因此建议用信用卡信息填写。
我可以使用任何属性来告诉Chrome没有这种形式的信用卡信息吗?
要尝试填写信用卡信息的字段名称为:
如果不需要,我不想禁用自动完成功能。
这里令人沮丧的是Chrome的“了解更好”的态度,它忽略了autocomplete
的任何值,包括off
:
<input autocomplete="off" value="" size="10" maxlength="10" id="id_reg_id" name="reg_id" type="text">
编辑:更新了以下答案。
答案 0 :(得分:0)
尝试
输入type =“ custom”
或在单行中使用textarea并调整大小
答案 1 :(得分:0)
您的浏览器默认不会记住您的信用卡号-我只能假设您输入的字段上带有“通用” autocomplete
值。您随时可以通过在预填充选项下拉菜单中选择删除(使用箭头键)时,只需点击浏览器中的删除来强制您的浏览器忘记。
为防止它出现在某些字段中,这取决于您希望每个字段保存什么信息,但是您可以使用autocomplete
个值中的wide array个。您可以使用number
作为ID,您提到的其他两个字段实际上带有专用的autocomplete
值given-name
和family-name
:
<input name="reg_id" autocomplete="number" />
<input name="emergency_first_name" autocomplete="given-name" />
<input name="emergency_last_name" autocomplete="family-name" />
如果number
不会删减,您还可以使用JavaScript正则表达式进一步限制输入:
const regex = new RegExp("^[a-zA-Z]+$");
const form = document.getElementsByTagName('form')[0];
const reg_id = document.getElementsByTagName('input')[0];
form.addEventListener('click', function(e) {
e.preventDefault();
if (regex.test(reg_id)) {
this.submit();
}
});
<form>
<input name="reg_id" autocomplete="number" />
<input name="emergency_first_name" autocomplete="given-name" />
<input name="emergency_last_name" autocomplete="family-name" />
</form>
答案 2 :(得分:0)
因此,我一直将头撞在桌子上。我们具有用于输入Instruments测试数据的表格,以及一个名为“测试卡号”以及“试剂盒(有效日期)”的字段。猜猜Chrome浏览器认为这些字段是做什么用的吗?
不用说,我敢肯定,用户会很不高兴看到<击>铬罢工>的我们的试图拉其CC信息时,他们输入查询临床研究数据
即使在这里, autocomplete =“ new-password” 和 autocomplete =“ nope” 都做不好。
我试图加载没有标签的字段,并在javascript中动态添加它。没有骰子。使用html实体代替字符。不。
好吧,经过数小时的搜索,没有任何解决方案,我发现了一个问题:在有问题的标签的每个字词中随机插入一些。 (对我来说,使用测试卡号必须同时在卡号和卡号中。单独进行测试就可以了。)
一个人可以很容易地编写一个javascript扩展/实用函数,以将不合格标签的html分割并在中间不可见地打巴掌(如果需要使用标签值,可以将其删除)。
这样的事情(使用jQuery和旧的js标准,因为我们支持旧的浏览器,没有验证标签是否丢失或为空,因此请进行相应调整。实际上,我确定可以使用正则表达式或其他一些奇特的东西,但我没有时间来整理一下atm):
jQuery.fn.breakAutofill = function () {
var $lbl = $("label[for='" + this[0].id + "']"),
finalText = $lbl.html().split(" "),
foilSpan = "<span style='display:none;'>-</span>";
for (var idx in finalText) {
var textVal = finalText[idx],
midPos = Math.floor(textVal.length / 2);
finalText[idx] = textVal.substr(0, midPos) + foilSpan + textVal.substr(midPos);
}
$lbl.html(finalText.join(" "));
}
随后您可以调用准备好的文档:
$("your_input_selector").breakAutofill();
我希望能对某人有所帮助。