检查时,如何动态地将复选框值从视图传递到控制器?

每次选中复选框时,我都会尝试将所有已检查值的数组发送到控制器,但无法弄清楚如何使用AJAX执行此操作。

html.erb:

A B C

JavaScript的:

 var selected_items = []; $(".item-checkbox").click(function() { var item = $( this ).val(); selected_items.push(item); } 

控制器:

 class BudgetController < ApplicationController def view .... end end 

如何在不必重新加载页面的情况下将selected_items数组传递给控制器​​?

这将涉及将它们放在表单中并获取表单提交:

 $('#MyForm').submit(function (event) { event.preventDefault(); // stop form from submitting normally var form = $(this); // get the form var dataToSend = form.serialize(); // get the submitted form items var url = form.attr('action'); // where we're submitting the data to $.post(url, dataToSend, function (data) { // optional function to deal with returned data }).done(function (data) { // what to do when it's completed }).fail(function (jqXHR, textStatus, errorThrown) { // what to do if it fails }); }); 

然后,您可以像服务器端的常规表单提交一样处理它们。