我有一个 Web 应用程序,它使用老式的 HTML 表单向服务器提交信息。最近有人指出,该系统无法在 Chrome 中使用翻译功能。 (系统有自己的内部翻译供用户使用,但偶尔有人想将另一种语言翻译回英语以供查看。我收到投诉说,在 Chrome 中查看翻译成英语的另一种语言时,系统不起作用,果然没有。)
我想我通过在 <span class="notranslate"></span>
中嵌入提交按钮解决了这个问题,但想知道为什么翻译首先会禁用提交按钮。它们是基本的<input type=submit value="[label on button]" ... />
。如果按钮不在 notranslate 范围内,Chrome 将翻译 value 属性(按钮上的文本标签)。但不知怎的,这似乎让他们失去了能力。
最佳答案
按钮尚未禁用。问题是您的表单将 POST/GET 按钮中的值。如果用户在 Chrome 中选择这些内容进行翻译,则它们可能不符合检测表单成功提交所需的条件。
例如您的表单中有一个按钮:
<input type=submit value="Continue" ... />
Google Chrome 浏览器将其翻译为德语:
<input type=submit value="Fortsetzen" ... />
它将提交这个翻译值。 但是,您的提交检测代码是(例如在 php 中):
if (isset($_POST["submit"]) && $_POST["submit"]=="Continue")
因此表单将被提交,但值将不匹配。
在我看来,这将破坏互联网的大部分内容,而不仅仅是您的系统。
顺便说一句,感谢您的建议:<span class="notranslate">
关于html - 为什么 Chrome 浏览器中的翻译会禁用网页中的提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59639252/