我有一个web应用程序,它使用老式的HTML表单向服务器提交信息。最近有人指出,该系统不能在Chrome的翻译中工作。(系统为用户提供了自己的内部翻译,但偶尔也会有人想要将另一种语言翻译回英语以供查看。当我在Chrome浏览器中查看另一种语言并将其翻译成英语时,我收到了抱怨,系统无法正常工作,果然没有。)
我想我通过在<span class="notranslate"></span>中嵌入提交按钮解决了这个问题,但我想知道为什么翻译一开始就会禁用提交按钮。它们是基本的<input type=submit value="[label on button]" ... />。如果按钮不在not范围内,Chrome将翻译value属性(按钮上的文本标签)。但不知何故,这似乎禁用了它们。
发布于 2020-12-08 00:09:29
按钮未被禁用。问题是您的表单将POST/获取按钮中的值。如果用户选择它们为Chrome中的翻译,那么它们可能不符合检测成功的表单提交所需的条件。
例如,在您的表单中有一个按钮:
<input type=submit value="Continue" ... />Google Chrome将其翻译成德语:
<input type=submit value="Fortsetzen" ... /> 它将提交此转换后的值。但是,您的提交检测代码是(例如在php中):
if (isset($_POST["submit"]) && $_POST["submit"]=="Continue") 因此表单将被提交,但值将不匹配。
在我看来,这将破坏互联网的大部分,而不仅仅是你的系统。
顺便说一句,谢谢你的建议:<span class="notranslate">
https://stackoverflow.com/questions/59639252
复制相似问题