Скопируйте текст из текстового поля и вставьте его в другую текстовую область в текущей позиции курсора. - PullRequest
0 голосов
/ 22 сентября 2019

ссылка на изображение ниже, когда я нажимаю кнопку добавления, мне нужно скопировать текст из первого текстового поля «Префикс правила», а затем, используя буфер обмена, мне затем нужно вставить скопированный текст в другой textarea«EditedEvent» в текущей позиции курсора.

Код ниже, я думаю, почти готов, но я не могу преобразовать скопированный текст в формат, позволяющий вставить его в другую текстовую область.

Как только это будет достигнуто, следующая задача - выполнить обратное действие с помощью кнопки удаления и удалить скопированный текст из textarea «Отредактированного события».

Обратите внимание на textarea «ОтредактированоСобытие "будет настроено только для чтения, поэтому пользователи не смогут редактировать его напрямую.

screenshot

 // Function Rule Prefix Add Button
function rulePrefixAdd() {

    /* Get the text field */
    var copyText = document.getElementById("rulePrefixInput");

    /* If text field is empty, show alert */
    if (copyText.value.length == 0) {
        /* Popup Window Alert the copied text */
        alert("Text input is empty!");
        return;
    }

    /* Select the text field */
    copyText.select();
    copyText.setSelectionRange(0, 99999); /*For mobile devices*/

    /* Copy the text inside the text field */
    var textString = document.execCommand("copy");

    //alert('textString'); // Alert box contains the correct string

    // NOT WORKING - PLEASE HELP
    typeInTextarea($(editedEventTextArea), textString);

    // This works but I dont want a hardcoded string, need to insert the text from clipboard.
    //typeInTextarea($(editedEventTextArea), "  << LOOK WHAT I DID! >>  ")
}

 function typeInTextarea(el, newText) {
    var start = el.prop("selectionStart")
    var end = el.prop("selectionEnd")
    var text = el.val()
    var before = text.substring(0, start)
    var after = text.substring(end, text.length)
    el.val(before + newText + after)
    el[0].selectionStart = el[0].selectionEnd = start + newText.length
    el.focus()
    return false
}

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Просто понял, что атрибут формы-группа в родительском классе сНа на странице бритвы был предотвращение яваскрипта функции от вставки текста в текстовое поле.Ссылка на комментарии выше, я убрал необходимость копировать текст в буфер обмена, обновленная функция ниже работает нормально.

 // Function Rule Prefix Add Button
function rulePrefixAdd() {

    /* Get the text field */
    var copyText = document.getElementById("rulePrefixInput");

    /* If text field is empty, show alert */
    if (copyText.value.length == 0) {
        /* Popup Window Alert the copied text */
        alert("Text input is empty!");
        return;
    }

    typeInTextarea($(editedEventTextArea), copyText.value);
}
0 голосов
/ 22 сентября 2019

Какая часть метода typeinTextArea не работает?Копирование данных из буфера обмена не работает?А если вы копируете данные только из ввода rulePrefix, тогда зачем нужен буфер обмена?

...