javascript - 在 HTML 文档中全局禁用拼写检查和自动完成功能?

标签 javascript html autocomplete spell-checking

可以通过向该元素添加 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/

相关文章:

javascript - 如何使用 Parse Server 正确设计可靠的确认机制?

javascript - 无法在 IE8 中获取未定义或空引用的属性 'parentNode'

javascript - JavaScript 中的动画问题

autocomplete - 自动完成Sublime Text中的自定义JavaScript函数

c# - 未设置控件数据源(或数据源 ID)

javascript - 如何在运行时动态重新配置 Drupal 的基于 jQuery 的自动完成功能?

javascript - 移动设备上 'resize' 的替代方案是什么?

javascript - 从外部 javascript 获取变量以在主体中的脚本 block 内执行

javascript - onclick 从表单返回输入而不是重定向

html - Css 框阴影移动到顶部和左侧