2017-08-02 68 views
0

我是javascript新手。我有一个简单的脚本的问题。我已经搜索了很长时间的互联网,我真的不明白我做错了什么。这可能只是我现在想不到的。 的问题是,当我点击“复制1,1'-按钮,它拷贝文本2 ...两个不同textareas的复制按钮

<textarea id="html" name="html">textarea 1</textarea> 
 
<input type="button" value="Copy 1" onclick="copy_to_clipboard(html);"><br><br><br> 
 
<textarea id="test" name="htmltest">textarea 2</textarea> 
 
<input type="button" value="Copy 2" onclick="copy_to_clipboard(test);"> 
 

 
<script> 
 
function copy_to_clipboard(html) 
 
{ 
 
    document.getElementById('html').select(); 
 
    document.execCommand('copy'); 
 
} 
 
function copy_to_clipboard(test) 
 
{ 
 
    document.getElementById('test').select(); 
 
    document.execCommand('copy'); 
 
} 
 
</script>

我想有一个与每个副本按钮,两个不同的文本区域。 ..

+0

两个具有相同名称的功能?只需传递单独的ids作为函数的参数并使用即可。函数的唯一目的是再次使用相同的代码。 – Shubham

+0

您有两个具有相同名称的函数。 – Jer

+0

谢谢......正如我所说的。只是我现在想不到的人! :) –

回答

0

在这两种情况下,您正在使用相同的函数名称。请找我的更新片段

<textarea id="html" name="html">textarea 1</textarea> 
 
<input type="button" value="Copy 1" onclick="copy_to_clipboard_1(html);"><br><br><br> 
 
<textarea id="test" name="htmltest">textarea 2</textarea> 
 
<input type="button" value="Copy 2" onclick="copy_to_clipboard(test);"> 
 

 
<script> 
 
function copy_to_clipboard_1(html) 
 
{ 
 
    document.getElementById('html').select(); 
 
    document.execCommand('copy'); 
 
} 
 
function copy_to_clipboard(test) 
 
{ 
 
    document.getElementById('test').select(); 
 
    document.execCommand('copy'); 
 
} 
 
</script>

+0

为什么使用两个函数。只需传递ID并在那里使用。 – Shubham

+0

解决了问题,但不是一个好方法。试着只做一个。 –

1

这是因为你已经创建了相同的名称和参数两种功能。你必须这样做:

function copy_to_clipboard(ids) 
 
{ 
 
    document.getElementById(ids).select(); 
 
    document.execCommand('copy'); 
 
}
<textarea id="html" name="html">textarea 1</textarea> 
 
<input type="button" value="Copy 1" onclick="copy_to_clipboard('html');"><br><br><br> 
 
<textarea id="test" name="htmltest">textarea 2</textarea> 
 
<input type="button" value="Copy 2" onclick="copy_to_clipboard('test');">

而且在功能上经过时,调用函数时的参数,必须在配额标志。检入HTML代码。

0

问题是你有两个同名的函数。没有必要做出两个不同的功能。此外,请使用您在该函数中传递的参数,而不是单独硬编码id名称。在'onclick'函数中使用反向逗号传递参数。

<textarea id="html" name="html">textarea 1</textarea> 
 
<input type="button" value="Copy 1" onclick="copy_to_clipboard('html');"><br><br><br> 
 
<textarea id="test" name="htmltest">textarea 2</textarea> 
 
<input type="button" value="Copy 2" onclick="copy_to_clipboard('test');"> 
 

 
<script> 
 
function copy_to_clipboard(html) 
 
{ 
 
    document.getElementById(html).select(); 
 
    document.execCommand('copy'); 
 
} 
 
</script>