【发布时间】:2016-05-11 23:28:09
【问题描述】:
我正在尝试获取表单文本字段的粘贴内容以触发 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);
});
我也尝试直接在数据变量中设置 url 变量:
var data = {
'action': 'myAction',
'security': $( '#my-nonce' ).val(),
'url' : $(capture).val(),
'check' : check
};
但没有任何效果。
我怀疑这与 setTimeout 函数有关。 在使用 setTimeout 时是否有特定的触发 AJAX 调用的方法?
只是为了清楚起见。我正在尝试在粘贴事件上触发 AJAX 调用。
【问题讨论】:
-
没有任何效果。你能说得更具体一点吗?控制台有错误吗?
-
check来自哪里?还有myajax? -
检查是 PHP 脚本中处理的 nonce 安全性的一部分(它有效)。 myajax 是我的 admin-ajax.php (wordpress) 的本地化路径。
-
@kecer 控制台中没有错误。什么都没有,我的意思是什么都没有发生。 AJAX 调用未触发 PHP 脚本。
-
我建议使用调试器,设置断点并一步一步地进行,验证一切是否按预期工作。
标签: javascript jquery ajax