Rails 3:通过 js/prototype 触发远程表单提交



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

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

我们有很多带有下拉列表的表单,每当其中一个下拉列表发生更改时,我们目前都会将其作为 AJAX 提交。

Rails 2.3 版本中,我们使用了form_remote_tag,然后下拉的onchange事件会调用$('myform').onsubmit(); ajaxily 提交表单。

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

$('myform').onsubmit();更改为仅$('myform').submit();会导致表单提交,但不会提交。

关于如何使用下拉菜单中的onchange事件与原型和Rails 3一起提交表单的任何建议?

谢谢!

通了。我只是从form_tag调用中删除了:remote => true,并在其位置添加了以下参数......

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

这基本上再现了旧form_remote_tag过去的做法。

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

最新更新