Как выбрать несколько текстовых полей с одной функцией javascript на одной кнопке onclick?

Я был в этом в течение нескольких часов и искал бесчисленные форумы. Мне бы очень хотелось помочь в вызове функции для применения к нескольким текстовым полям с помощью кнопки onclick. Прямо сейчас у меня есть рабочая функция, которая выделяет весь текст в заданном текстовом поле и копирует его в буфер обмена. Мне нужна эта функция, чтобы иметь возможность выбирать весь текст в нескольких полях и копировать его сразу одним щелчком мыши.

Текстовые поля HTML

<form name="data_entry" id="data_frm" action="#">
<table cellspacing="5" cellpadding="3">

<tr><td>Root Cause:</td>
<td><input type="text" size="35" maxlength="250" name="cause" id="txt_cause">
</td></tr>

<tr><td>Actions Taken:</td>
<td><input type="text" size="35" maxlength="300" name="actions" id="txt_actions">
</td></tr>

<!--COPY BUTTON-->            
<td><input type="button" name="clipboard_copy" value="Copy" onClick="javascript:selectcopy('data_entry.caller')"></td>

</table>
</form>

И код Javascript, который он вызывает

<SCRIPT LANGUAGE="JavaScript">
function selectcopy(fieldid)
{
var field=document.getElementById(fieldid) || eval('document.'+fieldid)
field.select()
if (field.createTextRange)
    {
    field.createTextRange().execCommand("Copy")
    }
}

So as it stands now, the copy button will copy the "caller" text field, but I need it to copy both (and many more fields) with one click. Also if possible, I need it to structure each text field on its own line when it copies so you can paste it and notice each line by itself? Thanks in advance!


person Justin Tennant    schedule 29.08.2012    source источник
comment
И да... Я знаю, что в моем примере кода нет текстового поля вызывающего абонента, но если бы кто-нибудь мог показать мне, как копировать поля причин и действий одним щелчком мыши, я бы полюбил их навсегда.   -  person Justin Tennant    schedule 29.08.2012
comment
Я предполагаю, что вам нужен весь текст из всех текстовых полей при нажатии кнопки?   -  person Asciiom    schedule 29.08.2012


Ответы (1)


Получите все значения текстового поля и соедините их (используйте \n между полями, чтобы принудительно ввести новые строки), а затем используйте команду execCommand для полученной строки.

person Asciiom    schedule 29.08.2012
comment
Никогда не думал об этом, хотя это определенно имеет смысл, я попробую и посмотрю, нужно ли мне это, когда я вернусь в офис завтра! - person Justin Tennant; 29.08.2012
comment
Хорошо, у меня все это объединено в одно невидимое текстовое поле именно в том формате, в котором я хочу, и как мне получить функцию onclick, чтобы сначала обработать это действие, а затем использовать мой javascript, чтобы выбрать поле и скопировать его? - person Justin Tennant; 30.08.2012
comment
просто вызовите действие конкатенации в качестве первой строки в вашей функции selectcopy, а при щелчке вызовите selectcopy с идентификатором вашего объединенного текстового поля и оставьте все остальное как было. - person Asciiom; 30.08.2012
comment
document.execCommand('copy') работает только в IE. Я считаю, что он заблокирован во всех других браузерах, чтобы предотвратить «отравление буфера обмена». - person mrswadge; 03.10.2014