我正在努力将Rails 2.3.14中的旧Rails应用程序转换为Rails 3.0。
它仍在使用Prototype(转换为jQuery是我们迁移路径中的后续步骤),所以请不要回答jQuery。
我们有很多下拉式表格,我们目前在其中一个下拉列表发生变化时以AJAX形式提交。
在 Rails 2.3 版本中,我们使用了form_remote_tag
,然后下拉列表的onchange
事件会调用$('myform').onsubmit();
来提交表单ajaxily。
在 Rails 3.0 分支中,我们已将表单转换为使用form_tag
:remote => true
,但是,当我们从下拉列表中选择一个选项时,Firebug会报告{ {1}}
从$('myform').onsubmit is not a function.
更改为仅$('myform').onsubmit();
会导致表单提交,但不是ajaxily 。
有关如何在下拉列表中使用onchange事件以及使用Prototype和Rails 3提交表单的任何建议吗?
谢谢!
答案 0 :(得分:0)
想出来。我只是从:remote => true
调用中删除了form_tag
,并在其中添加了以下参数...
:onsubmit => "new Ajax.Request('#{url}', {asynchronous:true, evalScripts:true, method:'get', parameters:Form.serialize(this)}); return false;"
这基本上再现了旧form_remote_tag
曾经做过的事情。
这不是一个永久的解决方案。只是踏脚石,让我们将这个应用程序转换为jQuery。