Rails不引人注目的javascript(UJS)ajax:在追加数据参数之前
我试图在通过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($('',{name: 'hidden_values',value: $(":hidden").serialize()})); });
您应该能够使用params[:hidden_values]
访问rails操作中的数据。