javascript - 当textarea失去焦点时显示选择

标签 javascript jquery html css

我有一个带有文本框和按钮的表单:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>

<p><textarea rows="4" cols="30">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</textarea></p>
<p><input type="button" value="Click me"></p>

</body>
</html>

用户选择文本,然后点击按钮。由于 textarea 失去焦点,选择不再可见。

有没有办法让选择保持可见?它不需要可用(即,不需要例如键入删除选择或 Ctrl+C 复制它)但我希望文本区域包含选择的某种视觉反馈.

Mockup

演示:Fiddle

最佳答案

在深入了解 jsFiddle 之后,我发现 CodeMirror拥有创建高度自定义文本区域所需的一切。它是为编写代码而构建的,但有一个小技巧,它可以应用于一般的文本区域。

参见 DEMO

首先准备好文本区域:

<textarea id="a">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</textarea>

然后将下面的脚本放在它后面创建一个CodeMirror textarea,并提供额外的设置将它转换成一个普通的textarea。

  • mode:我在这里使用"none"来去除语法高亮。
  • lineWrapping:使用true 对长行进行换行。
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("a"), {
    mode: "none",
    lineWrapping: true
});

最后,使用CSS控制大小,让它看起来像一个标准的textarea:

.CodeMirror {
    font-family: monospace;
    font-size: 12px;
    width: 300px;
    height: 100px;
    border: solid 1px #000;
}

关于javascript - 当textarea失去焦点时显示选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523667/

相关文章:

javascript - beginPath() 和 closePath() 究竟做了什么?

javascript - 如果鼠标不移动,输入中的 OnChange 不会触发

jquery - 是否可以在鼠标悬停时在同一个超链接中打开 2 个链接

javascript - 具有相同 id 的 jQuery .before

javascript - 如何将 "1h30m"样式持续时间解析为 Moment.js 持续时间

javascript - 如何在悬停 <a> 标签时弹出一个 div?

javascript - 如何从用户添加 div 和内容?

javascript - 出现溢出滚动条时更改表格标题以显示的JS代码

javascript - 动态地将表 td 分解为单独的 tr

带有 Rails 4 的 jQuery 日期选择器