可以通过向该元素添加 spellcheck="false"
或 autocomplete="off"
标签来禁用各个输入元素的拼写检查或自动完成功能。
但是对于那些想要在整个 DOM 上全局禁用它的人来说,有没有办法使用普通 javascript 或 HMTL 来做到这一点(考虑到在页面的生命周期中可能会创建新的输入元素)?
最佳答案
在普通 JavaScript 中,一种选择是迭代页面上的所有输入并应用必要的属性,如下所示:
var inputs = document.getElementsByTagName("input");
for(var i = 0; i < inputs.length; i++){
inputs[i].setAttribute("spellcheck", "false");
}
对于更动态的情况,您无法控制新输入的创建,可以使用突变观察器将所需的属性应用于动态创建:
window.addInput = function(){
var container = document.getElementById("container");
var input = document.createElement("input");
input.setAttribute("type", "text");
container.appendChild(input);
container.appendChild(document.createElement("br"));
}
//MutationObserver docs: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
var observer = new MutationObserver(function (e){
for(var i = 0; i < e.length; i++){
for(var j = 0; j < e[i].addedNodes.length; j++){
if(["INPUT", "TEXTAREA"].indexOf(e[i].addedNodes[j].tagName) > -1){
e[i].addedNodes[j].setAttribute("spellcheck", "false");
console.log("attribute set")
}
}
}
}).observe(document.getElementById("container"), {childList:true});
<button onclick="addInput();">
Add Input
</button>
<div id="container">
</div>
关于javascript - 在 HTML 文档中全局禁用拼写检查和自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227173/