【问题标题】:How to make editable textarea text non-selectable如何使可编辑的文本区域文本不可选择
【发布时间】:2013-07-17 19:41:05
【问题描述】:

我正在尝试创建一个非只读的文本区域(用户可以键入),但他们无法选择和拖动。

我发现的所有内容要么将 textarea 变为只读,要么使我无法集中注意力。

感谢任何帮助。

【问题讨论】:

标签: javascript jquery html css


【解决方案1】:

在 jQuery 1.8 中,可以按如下方式完成:

$('textarea')
    .attr('unselectable', 'on')
    .css('-webkit-user-select', 'none')
    .css('-moz-user-select', 'none')
    .css("-ms-user-select","none")
    .css("-o-user-select","none")
    .css("user-select",'none')
    .on('selectstart', false)
    .on('mousedown', false);

或者只使用css,

#yourtextarea
{
  -moz-user-select: none;
  -khtml-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

【讨论】:

  • 谢谢。似乎当我使用这段代码时,整个 textarea 变得不可选择(不仅仅是字符),我不能再在里面写了。是否可以只禁用文本选择(选择多个字符时的蓝色部分)?谢谢!
  • @Adam 检查this link。如果您可以突出显示部分文本区域,您可以对所选文本执行onselectunselect 之类的操作。或者您可以创建一个新的div,并将contenteditable 设置为true,然后尝试执行此操作。如果不是 textarea 建议在 this question
【解决方案2】:

您可以使用 CSS 样式 user-select: none; 来防止文本被选中。

【讨论】:

  • 它说的是select and drag。它在哪里说调整大小?
  • 我们会确定 OP 是否会返回解决 cmets。
  • 是的 - 我回来了。感谢cmets。我的意思是,能够单击一个字符,然后选择越来越多的字符(以这样的方式将启用大量删除)。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多