Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Скопировать значение строки из таблицы в textarea (https://javascript.ru/forum/server/85856-skopirovat-znachenie-stroki-iz-tablicy-v-textarea.html)

Grasss 20.04.2024 00:24

Скопировать значение строки из таблицы в textarea
 
При двойном клике на строку - копируется ее значение.

<tr ondblclick="copyLastColumn(this)"><td>какое-то значение</td></tr>

<script>
// You can use any function to copy here
function copyToClipboard(textToCopy) {
    var input = document.createElement("input");
    document.body.appendChild(input);
    input.value = textToCopy;
    input.select();
    document.execCommand("Copy");
    input.remove();
}

function copyLastColumn(tr) {
    copyToClipboard(tr.lastElementChild.innerHTML);
    // alert('copied to clipboard');
}
</script>


Как сделать, чтобы при двойном клике значение строки сразу копировалось в поле textarea с id="replace"

voraa 20.04.2024 12:50

Тут и копировать ничего не надо.
Просто перенести значение
<body>
<table>
<tr ondblclick="copyLastColumn(this)"><td>Строка 1</td></tr>
<tr ondblclick="copyLastColumn(this)"><td>Строка 2</td></tr>
<tr ondblclick="copyLastColumn(this)"><td>Строка 3</td></tr>
</table>
<textarea id="replace" rows="3" cols="20"></textarea>
<script>
function copyLastColumn(tr) {
document.getElementById("replace").value = tr.lastElementChild.textContent;
}

</script>
</body>

Grasss 20.04.2024 14:04

В принципе то, что надо...
А если сделать возможность добавления значений через (+=)
То как сделать в этом варианте, чтоб строки шли с новой строки, а не добавлялись слитно к предыдущей?
Из <textarea id="result"> копируем значения в <textarea id="replace>

document.getElementById("go").addEventListener("click", function() {
    document.getElementById("replace").value += document.getElementById("result").value;
}, false);

voraa 21.04.2024 10:40

document.getElementById("go").addEventListener("click", function() {
	const tr = document.getElementById("replace");
	if (tr.value) tr.value += '\n';
    tr.value += document.getElementById("result").value;
}, false);


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