2

我有一个使用 Rails UJS 提交 remote=true 的表单。

在 beforeSend 事件中,我想附加数据。我正在尝试以下内容:

onNewListItemFormBeforeSend : function(event, xhr, settings) {

  settings.data += { 'list_item[title]' : input_val,
    'list_item[position]' : 0,
    'list_items[open_positions]' : 'stuff',
   'list_items[done_positions]' : 'stuff' )
  };

}

但这是在我注销 settings.data 时添加一个对象......将这些项目附加到 settings.data 的正确方法是什么?

谢谢

更新

我也试过做:

settings.data = { 'number' : 'XXXXXX' }

但这没有用。在我看到的日志中:

 Started POST "/lists/9/list_items" for 127.0.0.1 at 2011-10-24 11:55:39 -0700
     Processing by ListItemsController#create as JSON
     Parameters: {"object Object"=>nil, "list_id"=>"9"}

为什么对象对象为零?

谢谢

4

2 回答 2

1

如果您使用的是较新版本,jquery_ujs则应该可以使用data-params(如果您此时能够这样做)。否则,您可以ajax:before在该点绑定和修改数据。我会向data-params自己学习。

这是同一问题的更多详细信息:

https://github.com/rails/jquery-ujs/issues/168

于 2011-10-25T02:58:42.350 回答
0
settings.data["list_item"] = { 'title' : input_val,
    'position' : 0,
    'open_positions' : 'stuff',
    'done_positions' : 'stuff'
};

尝试这样的事情。您可以创建“list_item”属性并像这样在js中动态设置它。

于 2011-10-24T18:57:15.207 回答