0

我正在将旧的 Rails 应用程序从 Rails 2.3.14 转换为 Rails 3.0。

它仍在使用 Prototype(转换为 jQuery 是我们迁移路径中的后续步骤),所以请不要使用 jQuery 回答。

我们有很多带有下拉列表的表单,我们目前在其中一个下拉列表发生更改时以 AJAX 的形式提交。

在我们使用的Rails 2.3版本中,下拉事件将调用以 ajaxily 提交表单。form_remote_tagonchange$('myform').onsubmit();

Rails 3.0分支中,我们已将表单转换为使用form_tagwith :remote => true,但是,当我们从下拉列表中选择一个选项时,Firebug 报告$('myform').onsubmit is not a function.

从 更改$('myform').onsubmit();为 只是$('myform').submit();导致表单被提交,但 不是 ajaxily

关于如何在下拉列表中使用 onchange 事件以使用 Prototype 和 Rails 3 ajaxily 提交表单的任何建议?

谢谢!

4

1 回答 1

0

弄清楚了。我只是:remote => trueform_tag调用中删除了,并在其位置添加了以下参数......

:onsubmit => "new Ajax.Request('#{url}', {asynchronous:true, evalScripts:true, method:'get', parameters:Form.serialize(this)}); return false;"

这基本上再现了旧form_remote_tag人曾经做的事情。

这并不是一个永久的解决方案。只是让我们将这个应用程序切换到 jQuery 的垫脚石。

于 2012-05-16T19:57:16.870 回答