在剪切事件期间获取文本框的值

时间:2012-02-20 16:29:20

标签: javascript jquery keyboard-shortcuts cut

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

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

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

提前致谢

3 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分:0)

希望我帮到你:

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

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

这应该有效,因为每次用户释放密钥并且文本框都是重点时,它会检查它是否为空。

答案 2 :(得分:0)

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