Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery粘贴到输入中-如果多次执行,则会出现错误_Javascript_Jquery - Fatal编程技术网

Javascript jquery粘贴到输入中-如果多次执行,则会出现错误

Javascript jquery粘贴到输入中-如果多次执行,则会出现错误,javascript,jquery,Javascript,Jquery,我用这样的东西来捕捉粘贴到输入框中的东西 $(".inputTextArea").bind('paste', function(e) {         var el = $(this);         setTimeout(function() {             var text = $(el).val();         alert(text);         }, 100); }); 这很好,但是如果我复制一些其他文本,删除字段的内容并粘贴新复制的文本,那么它只显示以前粘

我用这样的东西来捕捉粘贴到输入框中的东西

$(".inputTextArea").bind('paste', function(e) {
        var el = $(this);
        setTimeout(function() {
            var text = $(el).val();
        alert(text);
        }, 100);
});
这很好,但是如果我复制一些其他文本,删除字段的内容并粘贴新复制的文本,那么它只显示以前粘贴的文本


我怎样才能解决这个问题?

我想你需要这样的东西

或者您可以尝试实现这里描述的方法
它使用与剪贴板的直接交互。

在Chrome 17中对我来说似乎很好:对我来说很好页面上的其他一些功能可能会更新值?如果突出显示文本,然后在突出显示的文本上单击“粘贴”如何?好的,我已经在另一台pc上尝试过了…它可以工作。我觉得我的机器上有什么东西影响了这一切
$(".inputTextArea").bind('paste', function(e) {
        var el = $(this), range = getSelectionRange(el.get(0)); 
        setTimeout(function() {
            var text = el.val().substr(range[0], el.val().length - range[1] 
                                                                 - range[0]);
            alert(text);
        }, 100);
});

function getSelectionRange(el) {
    if ('selectionStart' in el) {
        return [el.selectionStart, el.value.length - el.selectionEnd];          
    } else if (document.selection) {
        var range = document.selection.createRange(), 
            stored_range = range.duplicate();
        stored_range.moveToElementText(el);
        stored_range.setEndPoint('EndToEnd', range);
        return [stored_range.text.length - range.text.length, 
                el.value.length - (el.selectionStart + range.text.length)];
    }
    return null; // modify it any way for unsupported browsers
}​