Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Textarea и выделение текста (https://javascript.ru/forum/misc/50494-textarea-i-vydelenie-teksta.html)

dima85 28.09.2014 19:58

Textarea и выделение текста
 
В textarea текст такого формата:
Текст1
 
Текат2
Текст3
 
Текат4
 
Текст5
Текст6


Подскажите возможно ли реализовать выделение текста по нажатию в textarea. Но не просто выделение. Необходимо допустим если я нажал на Текст2 или Текст3 выделить нужно только Текст2 и Текст3. Если я нажму на Текст4 то выделить нужно только Текст4. То есть необходимо выделять все что находится до Enter и после Enter.
Скажите подобное можно реализовать?

danik.js 29.09.2014 11:42

Допустим так:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
       <textarea id="ta" style="width:500px;height:300px">
Текст1

Текат2
Текст3

Текат4

Текст5
Текст6

       </textarea>
       <script>
function findChunkStart(text, searchStart) {
    for (var i = searchStart; i > 0; i--) {
        if (text[i] == '\n' && text[i - 1] == '\n')
            return i + 1;
    }
    return 0;
}
function findChunkEnd(text, searchStart) {
    for (var i = searchStart; i < text.length - 1; i++) {
        if (text[i] == '\n' && text[i + 1] == '\n')
            return i + 1;
    }
    return text.length +1;
}
ta.addEventListener('mousedown', function(e) {
    setTimeout(function() {
        var searchStart = this.selectionStart;

        this.selectionStart = findChunkStart(this.value, searchStart);
        this.selectionEnd = findChunkEnd(this.value, searchStart);
    }.bind(this));

});
       </script>
    </body>
</html>


В IE возможны траблы символами конца строк. Можно вместо циклов искать регулярками. И вобще нафиг это все нужно )

dima85 29.09.2014 13:48

Спасибо большое!


Часовой пояс GMT +3, время: 11:37.