我有文本框/文本区域输入字段,例如在里面选择一些文本
Test Message with sub text and last message
选择“Mes”并按 ctrl+B 它应该附加 <b>
(或我选择的任何字符或多个字符)到 JavaScript 两端的选定文本,如下所示
Test
<b>Mes<b>
sage with sub text and last message
我能够成功模拟 Ctrl+B 键事件,但无法用新文本替换所选文本。
最佳答案
您可以从文本区域中的相应字段获取选择的开始和结束。
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<textarea>Test Message with sub text and last message</textarea>
<script>
jQuery('textarea').on('keydown', function(e) {
if (e.keyCode == 66 && (e.metaKey || e.ctrlKey)) {
e.preventDefault();
var text = jQuery(this).val();
var start = this.selectionStart;
var end = this.selectionEnd;
var selection = '<b>' + text.substring(start, end) + '</b>';
text = text.substring(0, start) + selection + text.substring(end);
jQuery(this).val(text);
this.selectionStart = start;
this.selectionEnd = start + selection.length;
}
});
</script>
关于javascript - 如何在按键时将字符附加到 JavaScript 中文本框/文本区域中的选定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40615729/