sky*_*ker 6 javascript jquery backbone.js
events: { "paste .youtube-url" : "addUrl" }
addUrl: function(){
console.log(this.$(".youtube-url").val());
Run Code Online (Sandbox Code Playgroud)
所以我想说我第一次将"坏"粘贴到文本框中
控制台输出 :(一个空字符串)
那么如果我粘贴附加类似"编码器"的东西
控制台输出:坏
而不是在"badcoder"框中的内容,我想这是因为在插入文本之前触发了伪粘贴事件.
Jas*_*per 10
paste您可以使用在keyup有人粘贴时触发的事件,而不是在更新输入值后触发的事件,而不是使用事件.
UPDATE
来自@Micah(和@JohnnyO)的好评.这是我发现的解决方案:
$('input').on('paste', function () {
var that = this;
setTimeout(function () {
alert(that.value);
}, 0);
});?
Run Code Online (Sandbox Code Playgroud)
这会设置超时,因此只有在运行堆栈中的其余代码之后才会运行读取输入值的代码.我只在Chrome 21中测试过,但是零时间超时似乎可以解决问题.