gpt4 book ai didi

jQuery on ("paste") 第一次无法获取或传递该值

转载 作者:行者123 更新时间:2023-12-03 22:13:27 27 4
gpt4 key购买 nike

对我来说是真正的问题,因为我不知道解决它。

我编写的 jQuery 脚本应该获取“粘贴”操作的输入值,并通过 ajax 将其传递给 codeigniter Controller 。

它实际上工作得很好,但前提是我第二次(以及以后)粘贴该值。当我将某些 div 或其他 DOM 元素的 on("paste") 更改为 on("click") 时,它也可以正常工作。

脚本:

<script type="text/javascript">
$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {
'url' : $("#link").val()
};

$.ajax({
type: "POST",
url: "/thumb/ajax/",
data: postData , //assign the var here
success: function(msg){
$("#thumbs").html( "Data Saved: " + msg );
}

});

});

如有任何帮助,我们将不胜感激

编辑:还有一个提示。

此特定脚本中的

val() 实际上在粘贴操作之前获取值。如果我向该输入写入一些内容,然后将其删除并粘贴其他内容,它实际上会将我写入的值传递给 Controller ​​,而不是我粘贴的值。

编辑2:好的,我很确定这是 jQuery 的粘贴问题。

<script type="text/javascript">

$("#link").on("paste", function(){
$("#thumbs").empty().html("<p>loading</p>");
var postData = {'url' : $("#link").val() };
$("#thumbs").html($("#link").val());
});


</script>

此脚本应将输入中的值添加到 div#thumbs。它不适用于第一次粘贴操作。第二,它确实有效。

EDIT3:我的 friend 给了我一个提示。 on("paste") 在“粘贴”操作上以及实际粘贴完成之前起作用。如果有人给我提示如何设置超时以在粘贴后获取值,我可以继续。

最佳答案

问题已解决。

就像我之前说过的,“on("paste")”操作是在实际粘贴上完成的。因此,函数是在将值粘贴到输入之前完成的。这是因为第一次粘贴会抓取并传递输入的默认值(在我的示例中为 null)。

解决办法是设置超时。正确的代码看起来像这样并且工作得很好。

$("#link").on("paste", function(){

setTimeout(function() {
$("#thumbs").html("<p>loading</p>");
var postData = {
'url' : $("#link").val()
};
$.ajax({
type: "POST",
url: "/thumb/ajax/",
data: postData , //assign the var here
success: function(msg){
$("#thumbs").html( "Data Saved: " + msg );
$(".thumb").click(function(){
(this).attr('id');


});

}

});
}, 500);

});

问题已解决,感谢@3nigma的支持。

关于jQuery on ("paste") 第一次无法获取或传递该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045692/

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