0

我一直在尝试获取粘贴输入的值,但它总是什么都不返回:

$('form#post-game :input[name="header"]').keyup(function(){
    var str = $(this).val();
    IsImageValid(str, "#post-game-img-header");
});

$(document).on('paste','form#post-game :input[name="header"]',function(e) {
    var str = $('form#post-game :input[name="header"]').val();
    IsImageValid(str, "#post-game-img-header"); // there is a console log in this function
});

keyup 工作正常,但粘贴没有。

4

2 回答 2

2

使用自定义事件 afterpaste,paste 方法会立即触发一些内容被粘贴,但有时 s 给出 null 值。

这种后粘贴方法在粘贴方法的 0 毫秒后触发,并且在每种情况下都可以正常工作。

//Custom event After paste
$('HTML').on('paste', function (e) {
    e = $.extend({}, e, { type: 'afterpaste' });
    window.setTimeout(function () { $(e.target).trigger(e); }, 0);
});

//changed paste to afterpaste
$(document).on('afterpaste','form#post-game :input[name="header"]',function(e) {
    var str = $('form#post-game :input[name="header"]').val();
    IsImageValid(str, "#post-game-img-header"); // there is a console log in this function
});
于 2013-09-15T17:43:24.353 回答
0

使用.on('input propertychange',而不是.on('paste',.

尝试这个:

$(document).on('input propertychange','form#post-game input[name="header"]',function(e){ 
    var str = this.value;
    IsImageValid(str, "#post-game-img-header"); // there is a console log in this function
});

更多信息:

于 2013-09-15T17:35:13.373 回答