在这种情况下,我在同一页面上有一个输入框和一个文本区域。如果用户在输入框中粘贴了一些值,则该值应粘贴在文本区域中,而输入框中不应显示任何值,但焦点应保留在输入框中。
Here我已经实现了这一点。问题是,它适用于Chrome而不是IE或Mozilla。谁能告诉我我做错了什么?如何让它跨浏览器工作?
编辑:谢谢大家,为解决方案。但是我遇到的问题是你们提出的新观点,即文本的格式是如此。例如,如果我从Excel复制多行数据并粘贴,它将转换为单行数据。这很明显,就像修改后的代码here一样,我们实际上是在文本区域和输入框中复制输入框的值,所有格式都消失了。我最初的解决方案是与Chrome完美配合,而不是IE / Mozilla。但是,新解决方案适用于所有浏览器。如何保留粘贴文本的格式?
答案 0 :(得分:2)
试试这个:http://jsfiddle.net/4nejh/13/
有点延迟,但是如果你调整超时它应该顺利工作
答案 1 :(得分:1)
我已经更新了小提琴,它的工作符合您的期望。
$("#pasteable").on('paste',function(event){
setTimeout(function(){
$("#target").val($("#pasteable").val());
$("#pasteable").val("");
$("#pasteable").focus();
},100);
});
答案 2 :(得分:0)
这样的事情:
<div style="margin:20px;">
Paste here: <input id="pasteable" />
<br />
<br />
It should show here instead: <textarea id="target"></textarea>
</div>
<script>
var $pasteable = $("#pasteable");
var $target = $('#target');
$pasteable.bind('paste',function(event){
setTimeout(function(){
$target.val($pasteable.val());
setTimeout(function(){
$pasteable.val('');
},0);
},0);
});
</script>