Как выделить и изменить часть текстовой области - PullRequest
1 голос
/ 15 августа 2011

У меня есть текстовая область, где, когда пользователь выбирает и нажимает клавишу ввода, я хочу, чтобы она изменилась на что-то другое.Например, у меня есть текстовое поле, когда пользователь выбирает что-то вроде 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;
}

Я не знаю, где проверить, из ли это текстовой области или откуда-то еще, и я не знаю, как изменитьопределенная часть текста текстовой области

Ответы [ 2 ]

0 голосов
/ 15 августа 2011

Существует множество кросс-браузерных нюансов, когда речь идет о выделении текста.Есть несколько плагинов jQuery, пытающихся с этим справиться.Я бы рекомендовал использовать a-tools .Я использовал его в прошлом, и он работает как рекламируется.

0 голосов
/ 15 августа 2011

Это может помочь вам:

Поиск начальной и конечной позиции выделения в текстовой области

Также я только что проверил это, и это работает (возвращает выбранный тексттак что вы можете изменить его и присвоить значение текстовой области

Ref: 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>
...