【发布时间】:2015-08-31 15:46:12
【问题描述】:
请多多包涵;这几天我一直在和这个作斗争。
我的 jQuery(document).ready 函数中有一些 jQuery 代码,如下所示:
jQuery(document).ready(function($) {
jQuery.post(ajaxurl, data, function(response) {
alert(response);
});
});
我有一个文本输入字段,我想将它发送到我的 Ajax 函数(使用 Wordpress API)
<input type="text" name="input" id=input onkeydown="if (event.keyCode == 13) {send_message(this.value);}">
如果用户按下按键,文本将发送到 javascript 的“send_message”函数(如下)。
function send_message(value){
data[txt]=value;
jQuery.post(ajaxurl, data, function(response) {
alert(response);
});
}
基本上,我已向我的数据对象添加了一个“txt”键/值对,现在我希望将其提交给我的 ajax 函数。
“文档就绪”部分工作正常,但我无法让它接受更改的数据对象。
您可能会说,我没有很好地遵循 jQuery 代码背后的逻辑。
【问题讨论】:
-
我认为你的数据对象声明是错误的,你应该尝试类似的东西:
var data = {txt: value}; -
是的,对不起,我应该提到数据对象已初始化: var data = { action: 'chat_comms', nonce: '1f656a482b', id: 5 };它是在根命名空间中初始化的.
-
txt有值吗?还是你想data["txt"]=value? -
txt 被初始化为空。我正在尝试使用用户填写的文本输入的内容来设置它,以便我可以将文本输入值传递给 php 函数。
-
this.value为空的一个可能原因是在触发onkeydown时它尚未设置。见stackoverflow.com/a/1338497/3305116