复制选择但小写

时间:2019-05-10 21:33:08

标签: javascript jquery

我正在使用此方便的脚本复制并粘贴输入的值:

$(document).on('click','div.copy',function(){
 $('>input',this).select()
 document.execCommand('copy')
})

我的字体出于样式目的是大写的。我想选择并复制该值的小写版本。

我尝试过:

$(document).on('click','div.copy',function(){
 $('>input',this).val().toLowerCase().select()
 document.execCommand('copy')
})

但是我收到一个错误消息,说它不是一个函数。

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作。通常,出于安全原因,从浏览器访问用户剪贴板不是很简单。我创建了一个工作区片段。您将控件的值设置为小写值,选择它,然后复制。

或者,您可以查看Clipboard api

$(document).on('click','div.copy',function(){
 var control = $('>input',this);
 var txt = control.val();
 control.val(txt.toLowerCase());
 control.select();
 document.execCommand('copy');
 control.val(txt);
 control.select();
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="copy"><input type="text" value="FOO"/></div>

答案 1 :(得分:0)

感谢斯拉沃米尔(Slavormir)的回答。

我还找到了另一个使用CSS的简单解决方案。我忘了提到我的大写字母是由CSS text-transform:uppercase控制的,因此上述解决方案不适用于CSS转换后的文本。

如果您有text-transform:uppercase,可以这样做:

$(document).on('click','div.copy',function(){
 $('>input',this).css('text-transform','lowercase').select();
 document.execCommand('copy');
 $('>input',this).css('text-transform','');
});