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

Rails unobtrusive javascript (UJS) ajax:before append data params

本文关键字:数据 参数 ajax 引人注目 javascript UJS Rails      更新时间:2023-09-26

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

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

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

研究一下,实际上可以这样做,但您不使用事件,而是修改表单本身(使用$(this))。

所以像这样的东西可以工作:

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

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