获取组合框和文本区域中的选项值接收此值以复制

Get option value in combobox and textarea receive this value to copy

我是 JavaScript 初学者,我想获取选项的值,但在我当前的代码中,我获取的是它的文本内容。

我需要的示例:

其他颜色也一样。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=1">


<script type="text/javascript" src="jquery-2.0.2.js">
</script>

</head>

<body>

<select>
<option value="Sky is blue">Blue</option>
<option value="I like this color">Black</option>
<option value="Color of my car">Red</option>
</select>

<textarea type="text" class="js-copytextarea"></textarea><button class="js-textareacopybtn" style="vertical-align:top;">COPY</button>

<script type="text/javascript">
var copyTextareaBtn = document.querySelector('.js-textareacopybtn');

copyTextareaBtn.addEventListener('click', function(event) {
  var copyTextarea = document.querySelector('.js-copytextarea');
  copyTextarea.focus();
  copyTextarea.select();

  try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
  } catch (err) {
    console.log('Oops, unable to copy');
  }
});
    </script>
<script type="text/javascript">//<![CDATA[
$('body').on('change', 'select', function() {
$('textarea').val($(this).find(":selected").text()).select();
})
//]]></script>
</body>
</html>

如果您已经在大部分代码中使用 vanilla JS,则不需要 jQuery。

您可以向 select 元素添加事件侦听器并获取 change 上所选选项的值。您可以更新 textarea 的值,然后更新 select() 其内容:

select.addEventListener('change', function(e) {
  textarea.value = e.target.value;
  textarea.select();
});

查看下面的代码片段以获取工作示例:

let copyTextareaBtn = document.querySelector('.js-textareacopybtn');
let select = document.querySelector('select');
let textarea = document.querySelector('textarea');

copyTextareaBtn.addEventListener('click', function(event) {
  let copyTextarea = document.querySelector('.js-copytextarea');
  copyTextarea.focus();
  copyTextarea.select();

  try {
    var successful = document.execCommand('copy');
    var msg = successful ? 'successful' : 'unsuccessful';
    console.log('Copying text command was ' + msg);
  } catch (err) {
    console.log('Oops, unable to copy');
  }
});

select.addEventListener('change', function(e) {
  textarea.value = e.target.value;
  textarea.select();
});
<select>
  <option value="">Choose a color</option>
  <option value="Sky is blue">Blue</option>
  <option value="I like this color">Black</option>
  <option value="Color of my car">Red</option>
</select>

<textarea type="text" class="js-copytextarea"></textarea>
<button class="js-textareacopybtn">COPY</button>