我正在尝试获取表单文本字段的粘贴内容以触发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调用。
答案 0 :(得分:0)
试着增加时间,我的意思是 的setTimeout(函数(){... ,1000} 尝试不同的时间。
如果你得到答案,那么你的电话会消耗时间。