禁用HTML输入中的文本可选择性

禁用HTML输入中的文本可选择性,html,usability,html-input,disabled-control,Html,Usability,Html Input,Disabled Control,在我们的应用程序中,我们经常使用禁用的文本输入。但是,它们不是用户友好的,因为在某些浏览器(Chrome、Firefox,但不是IE)中,您不能用鼠标选择内部文本。这使得复制不允许编辑的文本变得非常困难 在HTML中,在这种情况下,似乎更倾向于使用readonly标志,而不是disabled。然而,我们不能轻易做到这一点,因为它改变了提交给服务器的内容,因此,如果我们想做出这样的改变,整个应用程序都需要调整和测试。此外,我认为它不必要地为用户创建了另一个语义不明确的状态 因此,我更愿意禁用输入,

在我们的应用程序中,我们经常使用禁用的文本输入。但是,它们不是用户友好的,因为在某些浏览器(Chrome、Firefox,但不是IE)中,您不能用鼠标选择内部文本。这使得复制不允许编辑的文本变得非常困难

在HTML中,在这种情况下,似乎更倾向于使用
readonly
标志,而不是
disabled
。然而,我们不能轻易做到这一点,因为它改变了提交给服务器的内容,因此,如果我们想做出这样的改变,整个应用程序都需要调整和测试。此外,我认为它不必要地为用户创建了另一个语义不明确的状态

因此,我更愿意禁用输入,但尽可能在所有浏览器中选择它们的文本问题:是否可以使用一些CSS使文本可选?

下面是一个简单的HTML测试:

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <input value="bla bla bla"/> <!-- selectable -->
    <input value="bla bla bla" disabled="disabled"/> <!-- selectable only in IE -->
    <input value="bla bla bla" readonly="readonly"/> <!-- selectable -->
  </body>
</html>


让我们退一步解释一下,如果您不想将输入用作输入,为什么首先需要使用输入。因为,例如,它们是一个用户的真正可编辑输入,而不是另一个用户的可编辑输入,具体取决于权限。此外,您可以对页面上的某些输入拥有权限,但对其他输入没有权限。最后,有时这可能是动态的,例如,复选框控制输入是否被禁用。OK。那样的话,对不起,我没有任何解决办法。我尝试了
contenteditable
,但这对输入不起作用(因为它们没有内容),我也没有任何其他想法。IE和Chrome在您的(第二个)示例中起作用。似乎是firefox唯一的问题:偶-moz用户选择:文本;Firefox不认可,但我认为应该是这样。如果您无法更改任何内容,那么完全隐藏此字段是更好的解决方案。看起来Chrome只有一个版本是这样的,但很快就恢复了更改。但最终我们发现,使用
只读
并不像在我们的应用程序中看起来那么难,因为我们在HTML之上有一个中间表示层。因此,在这个自定义层中生成最终HTML时,我们将
disabled
更改为
readonly
。对我们来说,火狐并不是问题,但无论如何我都认为它的行为是愚蠢的。