使用javascript复制表单的选项标签中的文本?

时间:2009-09-20 00:16:25

标签: javascript html forms

<select name="products">
    <option value=""> - Choose - </option>
    <option value="01">table</option>
    <option value="02">chair</option>
    <option value="03">book</option>
    <option value="04">car</option>
</select>

我希望能够在选择特定选项时自动复制文本...
例如。如果我选择书籍,书籍应该被自动复制,所以我可以在其他地方粘贴(Ctrl + v)..谢谢

3 个答案:

答案 0 :(得分:3)

在浏览器兼容性方面,复制到剪贴板是一项棘手的任务。最好的方法是使用小闪光灯。它适用于每个浏览器。您可以在this article中查看。

尽管如此,只是为了给你一个提示,这里是如何为Internet Explorer做的(仅仅因为它是最容易做到的):

function copy (str)
{
    //for Internet explorer ONLY!
    window.clipboardData.setData('Text',str);
}

现在你的select调用javascript函数onchange事件。只要选择了新值,就会触发此事件:

<select name="products" onchange="copy(this.options[this.selectedIndex].innerHTML)">
    <option value=""> - Choose - </option>
    <option value="01">table</option>
    <option value="02">chair</option>
    <option value="03">book</option>
    <option value="04">car</option>
</select>

答案 1 :(得分:0)

如果通过“复制”表示提取值,则应为每个选项提供ID属性。然后,使用以下代码访问它:

bookText = document.getElementById("book").innerHTML;

答案 2 :(得分:0)

在Internet Explorer中,您可以使用类似于以下内容的代码将文本复制到剪贴板:

<script type="text/javascript">
 function sendToClipboard(s)
 {
   if( window.clipboardData && clipboardData.setData )
   {
         clipboardData.setData("Text", s);
   }
   else
   {
     alert("Internet Explorer required");
   }
 }

 window.onload = function()
 {
   document.getElementById("products").onchange = function()
   {
     sendToClipboard(this.options[this.selectedIndex].innerHTML);
   };
 };
</script>

FireFox使得启用剪贴板访问变得更加困难(并非坏事)。请参阅http://kb.mozillazine.org/Granting_JavaScript_access_to_the_clipboardhttps://addons.mozilla.org/en-US/firefox/addon/852?application=firefox&id=852,这是一个允许您为剪贴板功能配置网站的插件。

然而,我不知道使用什么代码来完成工作。