9

我已经在文本框中捕获了剪切事件(jquery)。我想要的是在触发剪切事件期间获取文本框上的文本。

我尝试访问用户通过 evt.originalEvent.clipboardData.getData('text') 剪切的数据,但返回未定义。

我的目标是知道用户是否剪切了所有文本(文本框现在为空)。

提前致谢

4

3 回答 3

9

您可以setTimeout使用 0 的持续时间,它安排一个函数立即执行。好消息是,一旦文本已经被剪切,该函数就会执行,因此您可以检查您的 textarea 是否为空(这意味着用户已经剪切了所有文本):

var ta = $('#YOUR_TEXTAREA');
ta.bind('cut', function() {
    setTimeout(function(){
        if (!ta.val()) { 
            // user cut the whole text.
        }
    },0);
});

您可能还想在 之前添加一个检查,setTimeout以测试在文本被剪切之前文本区域中是否有任何文本(如果用户在没有选择任何文本的情况下按下 Ctrl^X,剪切事件仍然会触发)

于 2012-02-20T16:41:06.670 回答
0

我建议看看这个,JavaScript get clipboard data on paste event (Cross browser),它用于粘贴事件,但我相信你可以做类似的事情并将当前值与剪贴板上的值进行比较,如果它们是与输入相同的将是空的,否则不是。

于 2012-10-10T12:31:27.833 回答
0

希望我说对了:

在 jQuery 中,您可以使用类似这样的方法来查看每个用户的 keyup 上的文本框是否为空:

var txt;
$('#textbox_ID').live('keyup', function() {
    txt = $(this).val().length;
    if(txt < 1) {
        alert("textbox is empty");
    }
});

这应该可以工作,因为每次用户释放一个键并使文本框聚焦时,它都会检查它是否为空。

于 2012-02-20T16:33:16.113 回答