jquery ()函数有问题。我有几个按钮,并且使用一个post函数来处理所有的按钮。我似乎无法让可变的post名称起作用。
我的代码如下:
JS
注意:“编辑器”变量是设置在我的应用程序init上并且已经存在于此代码范围内的变量。
controls.find('button').live('click',function(){
//determine what button is clicked
var action = this.className;
$.post("actions.php",action: editor);
//functions run after post
});变量似乎没能通过。当我将变量更改为字符串时,它工作得很好。我还尝试在操作变量上运行toString();函数,没有任何更改。
任何想法都将不胜感激。
发布于 2011-09-14 18:22:13
这是无效的JavaScript:
action: editor如果editor是代码中其他地方定义的变量,那么您可能试图发送一个对象:
{ action: editor }其中,对象有一个名为"action“的属性,其值与editor相同。在这种情况下:
服务器被发送到“前面定义的editor".
action变量的action=value”的post正文,而不是发送给服务器.帖子体通常采用"key1=value1&key2=value2“的形式。jQuery接受一个被翻译成post体的对象。这样的对象看起来像{ key1: "value1", key2: "value2" }。所以你的电话看起来是:
$.post("url.php", { key1: "value1", key2: "value2" });或者,如果为值定义了变量:
$.post("url.php", { key1: value1, key2: value2 });在这里猜..。也许你想要的是:
$.post("actions.php", { action: action, editor: editor });编辑:基于你的评论,,也许这就是你想要的:
var postData = {};
postData[action] = editor;
$.post("actions.php", postData);没有从变量中指定属性名称的对象字面语法。你必须像上面那样用方括号符号来做这件事。
https://stackoverflow.com/questions/7420950
复制相似问题