将变量插入函数中的$ .post

时间:2011-03-08 15:37:04

标签: javascript jquery

我正在编写一个函数来发送$ .post show请如何正确地将变量插入到对象中,具体取决于它们是否已设置。 这就是我想要做的事情:

function SendCommand(Command, QuestionId, Attr) {   
   $.post('/survey/admin/command',
    {
     'Command': Command,
     if (QuestionId) 'QuestionId' : QuestionId,
     if (Attr) 'Attribute' : Attr
    }
   );   
 }

谢谢!

4 个答案:

答案 0 :(得分:3)

您始终可以在$ .post调用之前创建数据

var data = {
 'Command': Command
};

if (QuestionId) {
  data.QuestionId = QuestionId;
}
if (Attribute) {
  data.Attribute = Attribute;
}

$.post("your/url", data);

答案 1 :(得分:1)

这是实现此目的的快捷方式......

$.post('/survey/admin/command',
  {
   Command: Command,
   QuestionId: QuestionId || undefined,
   Attribute: Attribute || undefined
  }
);

此方法的最大缺点是,某些值(例如零或空字符串)是错误的。所以这不是一个全能的方法。

答案 2 :(得分:0)

如果存在空值的可能性,我会选择:

$.post('/survey/admin/command',
  {
   'Command': Command,
   'QuestionId' : QuestionId ? QuestionId : undefined,
   'Attribute' : Attribute ? Attribute : undefined,
  }
);

否则,我认为jQuery会忽略未定义的参数。

答案 3 :(得分:0)

试试这个(未经测试的)

function SendCommand(Command, QuestionId, Attr) { 
    var data = {};
    data['Command'] = Command;
    if (QuestionId) data['QuestionId'] = QuestionId;
    if (Attr) data['Attribute'] = Attr;
   $.post('/survey/admin/command',data  );   
 }