Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Подскажите, как создать кнопку для textarea (https://javascript.ru/forum/dom-window/53179-podskazhite-kak-sozdat-knopku-dlya-textarea.html)

vladimir003 24.01.2015 01:11

Подскажите, как создать кнопку для textarea
 
Здравствуйте. Подскажите, как создать кнопку для textarea, чтобы при ее нажатии символ появился в textarea? Символ следующий - | создается при комбинации alt +1,2,4.
За ране благодарю.

danik.js 24.01.2015 01:15

<form>
<textarea id="input"></textarea>
<button type="button" onclick="input.value += '|'">Вставить «|»</button
</form>


Появляется? Появляется. Все как по заказу.

vladimir003 24.01.2015 01:56

Спасибо большое. Можно ли что-то сделать чтобы курсор из формы не исчезал? И символ указанный в кнопке ставился в любом месте где стоит курсор, а не в конце?

danik.js 24.01.2015 11:34

Ну что-то воде этого:
<form>
<textarea id="input"></textarea>
<script>
    var input = document.getElementById('input');
    function вставитьПалку() {
        var value = input.value;
        var selection = [input.selectionStart, input.selectionEnd];
        value = value.substring(0, selection[0]) + '|' + value.substring(selection[1]);
        input.value = value;
        input.focus();
        input.selectionStart = selection[0]  + 1;
        input.selectionEnd = selection[0] + 1;
    }
</script>
<button type="button" onclick="вставитьПалку()">Вставить «|»</button
</form>


В IE8 не будет работать.

vladimir003 24.01.2015 13:43

Ваша форма работает, а в моей где-то ошибка, не могу найти

<form method="post">
            <div class="form-group">
<script>

function push(but, id, tag) {
    document.getElementById(id).value += tag;
}
</script>

<textarea name="text" class="form-control" rows="5">
<?= htmlspecialchars($text) ?></textarea><br />
<script>
    var input = document.getElementById('text');
    function text.value += '|' {
        var value = input.value;
        var selection = [input.selectionStart, input.selectionEnd];
        value = value.substring(0, selection[0]) + '|' + value.substring(selection[1]);
        input.value = value;
        input.focus();
        input.selectionStart = selection[0]  + 1;
        input.selectionEnd = selection[0] + 1;
    }
</script>

<button class="btn btn-default" type="button" onclick="text.value += '|'">Вставить «|»</button></form>

danik.js 24.01.2015 15:39

Цитата:

Сообщение от vladimir003
где-то ошибка, не могу найти

Весь твой код - одна сплошная ошибка ))
Посмотри еще раз на мой код (второй вариант), а потом посмотри на свой )

danik.js 24.01.2015 15:40

Цитата:

Сообщение от vladimir003
function text.value += '|' {

Эт че такое :D

vladimir003 24.01.2015 15:55

Это вот от сюда:
[
<button type="button" onclick="input.value += '|'">Вставить «|»</button>

Только у вас ID="input", а у меня - text

vladimir003 24.01.2015 16:55

Сейчас исправил, но все равно символ вставляет в конце, может из-за первого скрипта?
<form method="post">
            <div class="form-group">
<script>

function push(but, id, tag) {
    document.getElementById(id).value += tag;
}
</script>

            <textarea name="text" id="input" class="form-control" rows="5">
<?= htmlspecialchars($text) ?></textarea><br />
<script>
    var input = document.getElementById('input');
    function input.value += '|' {
        var value = input.value;
        var selection = [input.selectionStart, input.selectionEnd];
        value = value.substring(0, selection[0]) + '|' + value.substring(selection[1]);
        input.value = value;
        input.focus();
        input.selectionStart = selection[0]  + 1;
        input.selectionEnd = selection[0] + 1;
    }
</script><button class="btn btn-default" type="button" onclick="input.value += '|'">Вставить «|»</button></form>

danik.js 24.01.2015 17:09

vladimir003, у тебя провалы в памяти что-ли? Ты уже спрашивал, и я тебе предложил другой код. Пролистай наверх, блин, перечитай ветку.


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