2009-09-20 2 views
2
<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) в другое место. Спасибо.Скопировать текст в тег опции формы с помощью javascript?

+0

AS в копии в буфер обмена или как в копии в другое поле? – Locksfree

+0

Я имею в виду копию, для копирования/вставки ... например, я могу вставить (Ctrl + v) в другом месте – halocursed

ответ

3

Копирование в буфер обмена является сложной задачей сделать в JavaScript, с точки зрения совместимости браузера. Лучший способ сделать это - использовать небольшую вспышку. Он будет работать в каждом браузере. Вы можете проверить это в this article.

Тем не менее, только за то, что вам подсказку, вот как это сделать для Internet Explorer (только потому, что это самый простой один сделать):

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

Теперь селектов вызовы 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> 
+0

Ну это для моего личного (административного управления) использовать только и не будет отображаться пользователю ... – halocursed

+0

rogerio это не wworking !!! – halocursed

+0

@ halocursed, только что скорректировал код. попробуйте еще раз, пожалуйста, – rogeriopvl

0

Если «копировать» означает выделение значения, вы должны указать каждому атрибуту идентификатора. Затем к нему доступ с помощью кода, как это:

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

no Я имею в виду копию, для копирования/вставки ... например, я могу вставить ее где-то в другом месте – halocursed

+0

Этого не происходит onchange событие. – rogeriopvl

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_clipboard и https://addons.mozilla.org/en-US/firefox/addon/852?application=firefox&id=852, который представляет собой аддон, который позволяет настраивать сайты для работы с буфером обмена.

Я не знаю, какой код использовать для выполнения работы.

+0

Это не работает на моем конце ... :( – halocursed

+0

Это не работает на моем конце (проверено в ie7) ... :( – halocursed

+0

@halocursed: обновлено окно. onload, чтобы установить свойство onchange элемента select вместо изменения. Попробуйте это сейчас. –

Смежные вопросы