在粘贴事件jQuery上调用AJAX时出现问题

时间:2016-02-02 23:17:15

标签: javascript jquery ajax

我正在尝试获取表单文本字段的粘贴内容以触发AJAX操作,该操作连接到php脚本以处理数据,然后发送相关响应。

php脚本工作正常,所以我知道问题不在那里。

如果我这样做,通过警告粘贴到文本字段中的内容,jQuery函数也可以完美地运行

$(document).ready(function(){

    $('input').on('paste', function () {

    var capture = this;

      setTimeout(function () {

          var url = $(capture).val();

          alert (url);

      }, 100);  

   });  
});

但是当我尝试添加AJAX业务时,它都失败了。

我显然做错了,但我不知道正确的做法。 我调用AJAX的方式与我在其他一系列脚本中使用的方法相同,并且在这些方法中工作正常,因此它必须与它被调用的位置有关。

我已经尝试过(离开文档准备好保存混乱):

$('input').on('paste', function () {

var capture = this;

    setTimeout(function () {

        var url = $(capture).val();

    }, 100);

        var data = {
                    'action': 'myAction',
                    'security': $( '#my-nonce' ).val(),
                    'url' : url,
                    'check' : check
                   };

        $.post(myajax.ajaxurl, data, function(response) {

                    alert(response);

        }           
});

还尝试过:

$('input').on('paste', function () {

var capture = this;

    setTimeout(function () {

        var url = $(capture).val();

        var data = {
                    'action': 'myAction',
                    'security': $( '#my-nonce' ).val(),
                    'url' : url,
                    'check' : check
                   };

        $.post(myajax.ajaxurl, data, function(response) {

               alert(response);

        } 

    }, 100);

});

我还尝试直接在数据var中设置url var:

var data = {
            'action': 'myAction',
            'security': $( '#my-nonce' ).val(),
            'url' : $(capture).val(),
            'check' : check
           };

但没有任何效果。

我怀疑这与setTimeout函数有关。 是否有一种特殊的方法在使用setTimeout时触发AJAX调用?

为了清楚起见。我试图在粘贴事件上触发AJAX调用。

1 个答案:

答案 0 :(得分:0)

试着增加时间,我的意思是 的setTimeout(函数(){... ,1000} 尝试不同的时间。

如果你得到答案,那么你的电话会消耗时间。