gpt4 book ai didi

jQuery on ("input paste")在粘贴后触发两次

转载 作者:行者123 更新时间:2023-12-01 04:57:55 25 4
gpt4 key购买 nike

我想检查URL是否已经输入到textarea中。这是一个检查文本区域的函数:

$('#text textarea').on('input paste', function() {
checkUrl($(this));
});

只允许一个URL,所以找到URL处理程序后使用off解除绑定(bind):

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);
});

它现在仅适用于粘贴处理程序,但主要问题仍然存在......

最佳答案

获取事件对象并检查事件类型“输入”,因此如果它是粘贴事件,它将触发输入事件

你可以试试这个

$('#text textarea').on('input paste',function(event){


if(event.type=='input'){
checkUrl($(this));
}
});​

演示:http://jsfiddle.net/nLPrG/

关于jQuery on ("input paste")在粘贴后触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com