在 Rails 3 应用程序中,我想让浏览器在某个复选框被切换时调用远程函数。在 Rails 2 中,这很容易通过传递
:onclick => remote_function(...)
到复选框助手。在 Rails 3 中,remote_* 函数已被弃用,因此我尝试了以下解决方法:
- 使用在复选框周围创建一个表单
form_tag ... :remote => true
$("dummy_form").submit();
通过从onclick
处理程序调用提交表单
在 Rails 捆绑的 rails.js 文件中是一个监听submit
事件的观察者。但是,这些似乎仅在用户单击提交按钮时触发,而不是在form.submit()
被调用时触发(目前仅在 FF 中测试)。
这会产生不希望的效果,即提交不是通过 AJAX 在后台完成,而是以正常方式完成,因此浏览器会离开当前站点并显示来自控制器的响应。
有谁知道解决方法?也许完全不同的方式来获得相同的功能?