【问题标题】:Rails 3: trigger submit on remote form via js/prototypeRails 3:通过 js/prototype 在远程表单上触发提交
【发布时间】:2012-05-16 18:25:02
【问题描述】:

我正在将旧的 Rails 应用程序从 Rails 2.3.14 转换为 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 会报告 $('myform').onsubmit is not a function.

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

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

谢谢!

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 prototypejs onsubmit


    【解决方案1】:

    想通了。我只是从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 的垫脚石。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 2012-11-27
      • 2012-02-20
      • 2015-07-14
      • 1970-01-01
      相关资源
      最近更新 更多