繁体   English   中英

如何突出显示和更改文本区域的一部分

[英]How do I highlight and change a part of a textarea

我有一个文本区域,当用户选择并按 Enter 键时,我希望它更改为其他内容。 例如我有一个文本区域,当用户选择像 NY 这样的东西时,我希望这两个字母更改为 NY

这是一个小提琴,但我迷路了

我有类似的东西:

$('textarea').html('I live in NY and it\'s a great place to live');
$(window).click(function(){
        var selection = selectedText();
        console.log(selection);
    });

function selectedText() {
    var ret = '';
    if (window.getSelection){
        ret = window.getSelection();
    } else if (document.getSelection) {
        ret = document.getSelection();
    } else if (document.selection) {
        ret = document.selection.createRange().text;
  }
  return ret;
}

我不知道在哪里检查它是来自 textarea 还是来自其他地方,而且我不知道如何更改 textarea 文本的特定部分

这可能会帮助您:

在文本区域中查找选择开始和结束 position

我也刚刚测试了它并且它可以工作(它返回选定的文本,所以你可以修改它并将值分配回 textarea

参考: http://www.codingforums.com/showpost.php?p=235174&postcount=5

<script type="text/javascript">
 <!--//
  function selectedText(input){
    if(document.selection && document.selection.createRange().text != ''){ // IS IE
       alert(document.selection.createRange().text);
    }

    else{ // Not IE.. assume Mozilla?
       var startPos = input.selectionStart;
       var endPos = input.selectionEnd;
           alert(input.value.substring(startPos, endPos))    
   }
 }
 //-->
</script>
</head>

<body>
<form name="reportForm">
<textarea name="report">this is a test</textarea>
<button onclick="selectedText(this.form.report)">Alert Selection</button>
</form>

在文本选择方面有很多跨浏览器的细微差别。 有几个 jQuery 插件试图解决这个问题。 我建议使用a-tools 我过去用过它,它的工作原理和宣传的一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM