Rails不引人注目的javascript(UJS)ajax:在追加数据参数之前

时间:2014-09-28 03:23:47

标签: javascript jquery ruby-on-rails ajax ujs

我尝试在通过ajax(通过Rails UJS)发送之前将一些参数附加到表单。

  $(document).on("ajax:before",".form-example", function(event) {
    event.data = $(":hidden").serialize();
  });

隐藏的输入不在表单中,因此我需要收集它们,序列化并将它们添加到请求(这是PUT请求)。但是,在上面的例子中,没有参数传递给服务器,我做错了什么?如何使用隐藏输入的序列化值传递名为"items"的参数?

1 个答案:

答案 0 :(得分:1)

调查一下,实际上可以这样做,但是你没有使用这个事件,你修改了表单本身(使用$(this))。

这样的事情可以起作用:

$(document).on("ajax:before",".form-example", function() {
  var form = $(this);
  form.append($('<input />',{name: 'hidden_values',value: $(":hidden").serialize()}));
});

您应该可以使用params[:hidden_values]访问rails操作中的数据。