如何在Rails3中选中或取消选中复选框时触发ajax调用?

在我的Rails3应用程序中,我有一组复选框用于列出任务。 我想在选中或取消选中其中一个复选框时,将ajax调用重新启动回服务器。

此代码是更大forms的一部分:

  { :controller => "tasks_assigned", :action => 'update' }, :remote => true do |t|%>  task_assigned.id %>  task_assigned.provider_completed, :onclick => "$(this).parent().trigger('submit.rails');" } %> <%= t.label :provider_completed, task_assigned.task_desc.gsub(/(\n\r|\r\n|\n)/, '
').html_safe, :style => "color: #666666; margin-top: 0px;" %>

这是生成的html:

 



如果我在表单中添加一个提交按钮,它没有任何问题,但这看起来不太吸引人。

‘onclick =“$(this).parent()。trigger(’submit.rails’);”’是检查复选框时触发rails提交代码的徒劳尝试。 从未找到父(表单)。 生成javascript错误“对象#没有方法’父级’”。

我相信我非常接近弄明白,但我显然错过了一些东西。

在复选框中添加一个类,删除突出的onclick并使用jQuery以不显眼的方式触发表单。

 <%= t.check_box :provider_completed, { :checked => task_assigned.provider_completed, {:class => 'checkable'} } %> $('.checkable').live('change', function() { $(this).parents('form:first').submit(); }); 

我认为如果你使用标准.submit()但添加.submit();返回false; 你会得到它。