Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3:通过js/prototype在远程表单上触发提交_Ruby On Rails_Ajax_Ruby On Rails 3_Prototypejs_Onsubmit - Fatal编程技术网

Ruby on rails Rails 3:通过js/prototype在远程表单上触发提交

Ruby on rails Rails 3:通过js/prototype在远程表单上触发提交,ruby-on-rails,ajax,ruby-on-rails-3,prototypejs,onsubmit,Ruby On Rails,Ajax,Ruby On Rails 3,Prototypejs,Onsubmit,我正在将旧的Rails应用程序从Rails 2.3.14转换为Rails 3.0 它仍然在使用Prototype转换为jQuery,这是我们迁移路径中的后续步骤,所以请不要回答jQuery 我们有很多带有下拉列表的表单,只要其中一个下拉列表发生更改,我们就会以AJAX的形式提交这些表单 在Rails 2.3版本中,我们使用form_remote_标记,然后下拉列表的onchange事件将调用$'myform'.onsubmit;半自动提交表格 在Rails 3.0分支中,我们已经将表单转换为使用

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

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

我们有很多带有下拉列表的表单,只要其中一个下拉列表发生更改,我们就会以AJAX的形式提交这些表单

在Rails 2.3版本中,我们使用form_remote_标记,然后下拉列表的onchange事件将调用$'myform'.onsubmit;半自动提交表格

在Rails 3.0分支中,我们已经将表单转换为使用form_标记with:remote=>true,但是,当我们从下拉列表中选择一个选项时,Firebug报告$'myform'。onsubmit不是一个函数

正在从提交时的$'myform'.更改;只需$'myform'。提交;导致表单被提交,但不是以ajaxily方式提交

关于如何在下拉列表中使用onchange事件与Prototype和Rails 3一起提交表单,有什么建议吗


谢谢

找到了答案。我只是从form_标记调用中删除了:remote=>true,并在其位置添加了以下参数

:onsubmit=>new Ajax.Request'{url}',{asynchronous:true,evalscript:true,method:'get',参数:Form.serializethis};返回false

这基本上复制了旧的form_remote_标记的功能

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