禁用内容可编辑的div中的自动更正/自动完成

8

我正在使用Script#开发一个跨浏览器应用程序。

我正在使用一个可编辑的div,用户可以在里面添加文本。但我不希望自动更正/自动完成功能改变用户的文本。

请告诉我如何禁用此功能。它应该适用于所有平台(iOS、Android、Windows)。

我已经尝试过设置autocorrect="off"和autocomplete="off",但没有作用。请帮帮我......


1
我认为自动纠正功能(我假设是在手机、平板电脑等上)是键盘的一部分,因此只是操作系统/应用程序的一部分。除非它能够读取文本框的属性,否则我无法看到如何禁用它。 - RemarkLima
有没有办法通过代码禁用键盘的自动更正功能? - Kpatel1989
你的代码无法直接访问键盘硬件/软件或操作系统的任何部分。 - RemarkLima
这更像是一个HTML5/JS问题,而不是S#的问题。在S#中,您只需要向div添加适当的属性即可。 - Nick
2个回答

12
您可以使用属性spellcheck=false来禁用“可编辑文本的拼写和语法检查”,这是(在HTML5 CR中)定义的方法。该元素的默认值取决于浏览器,并且该值可能取决于元素。例如,在Chrome中,使用contenteditable属性使元素可编辑时,默认值为spellcheck=true
但是,请注意,这最多只会影响浏览器中发生的事情。浏览器外部的软件,例如系统的键盘读取程序,可能对您在HTML中说的任何内容都免疫。

如果他们能够检查一下就好了...例如,SwiftKey会在密码字段中删除自动更正,因此可能有些东西正在被采用...? - RemarkLima

2
您正在使用正确的属性,但我不确定它们是否适用于 contenteditable(它们肯定适用于 p 和 input 标签)。目前的 iOS 版本(至少是 v6.1)将会支持这些属性,然而在 Chrome for Android 中却存在一个不遵循这些 HTML5 属性的 bug。最近这个问题似乎已经被修复,并有望在下一次更新中发布。同时,您也可以给这个问题点赞以提高其排名。详情请访问https://code.google.com/p/chromium/issues/detail?id=303883&q=autocorrect&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接