【发布时间】:2012-10-23 07:20:53
【问题描述】:
我想检查 URL 是否已输入到 textarea 中。这是一个检查 textarea 的函数:
$('#text textarea').on('input paste', function() {
checkUrl($(this));
});
只允许一个 URL,所以在找到 URL 处理程序后使用 off 解除绑定:
function checkUrl(elem) {
var words = elem.val().split(/\s+/);
$.each(words, function(index, element) {
if (isValidURL($.trim(element))) {
$.ajax({...}); // Ajax call
elem.off('input paste');
return;
}
});
}
在粘贴 URL (CTRT+V) 后,函数 checkUrl 不仅被调用一次,而且被调用两次。 Ajax 也被触发了两次。
非常感谢。
编辑
我根据this修改了我的代码:
$('#text textarea').bind('paste', function() {
var _this = $(this);
setTimeout( function() {
checkUrl(_this);
}, 100);
});
现在只能使用粘贴处理程序,但主要问题仍然存在...
【问题讨论】:
-
input包括所有输入方法,包括粘贴。是否有明确添加paste的理由? -
不,我刚刚在这里看到了“输入粘贴”stackoverflow.com/questions/686995/jquery-catch-paste-input
-
我试过只输入,但还是一样
-
"CTRL" 和 "V" 可能会导致问题...
-
请粘贴您的 HTML 代码,或创建一个 JSFiddle 来复制您的问题。它会帮助我们为您提供帮助。