我有一个使用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"}
为什么对象对象为nil?
由于
答案 0 :(得分:1)
如果您使用的是较新版本的jquery_ujs
,则应该可以使用data-params
(如果您此时可以使用)。否则,您可以绑定到ajax:before
并在此时修改数据。我自己会学习data-params
。
以下是针对同一问题的更多细节:
答案 1 :(得分:0)
settings.data["list_item"] = { 'title' : input_val,
'position' : 0,
'open_positions' : 'stuff',
'done_positions' : 'stuff'
};
尝试这样的事情。您可以创建“list_item”属性并在js中动态设置它。