我试图在通过 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 操作中的数据。
关于javascript - Rails 不显眼的 javascript (UJS) ajax :before append data params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26081297/