代码之家  ›  专栏  ›  技术社区  ›  Roman

将粘贴事件挂接到隐藏的textarea

  •  1
  • Roman  · 技术社区  · 16 年前

    我要挂起粘贴事件 <input type="text"> 并强制将此文本粘贴到隐藏的textarea中(然后我要解析textarea的文本并执行“将数据从excel粘贴到gridview”操作)。比如:

    $('#input1').bind('paste', function(e) {
        // code do paste text to textarea instead of originally targeted input
    });
    

    我应该写什么跨浏览器代码而不是注释?

    谢谢

    2 回复  |  直到 16 年前
        1
  •  3
  •   Harmen    16 年前

    有一个黑客的解决方案,激发一个 focus 当按下Ctrl和V键或Shift和Insert键时文本区域上的事件[是的,它不适用于contextmenu->[过去]

    $(document).ready(function(){
        var activeOnPaste = null;
        $('#input1').keydown(function(e){
            var code = e.which || e.keyCode;
            if((e.ctrlKey && code == 86) || (e.shiftKey && code == 45)){
                activeOnPaste = $(this);
                $('#textarea').val('').focus();
            }
        });
        $('#textarea').keyup(function(){
            if(activeOnPaste != null){
                $(activeOnPaste).focus();
                activeOnPaste = null;
            }
        });
    });
    

    #input1 会很专注。

    在键入此内容时,我发现可能有一种解决方案,可以使用范围同时粘贴键盘和鼠标。我也要试试这个。。。

        2
  •  0
  •   ThE_-_BliZZarD    15 年前

    您应该将函数绑定到输入字段onChange()事件,并在每次调用此函数时复制其内容,然后处理数据。如果您对“粘贴的”内容特别感兴趣(我不知道您在那里尝试做什么,但通常情况下,在粘贴的内容必须另外处理的情况下,这是一个不好的概念的标志),您可以尝试实现一个检查输入速度的计数器(例如每秒超过xx个字符->粘贴事件(调用)