在observe_form上同时使用:url和:function

时间:2009-07-29 23:50:45

标签: ruby-on-rails forms observer-pattern

有没有办法在同一个observe_form标记中生成Javascript函数调用和Ajax调用?例如,像这样:

<%= observe_form 'user_filter_form', :url => { :action => :process }, :function => :fix_fields %>

谢谢!

2 个答案:

答案 0 :(得分:0)

这里最好的选择是深入了解实际的JavaScript而不是依赖帮助程序。帮助者到目前为止只能帮助你。你想要的是这些方面:

<script type="text/javascript">
  new Form.EventObserver('user_filter_form', function(element, value){
    fix_fields();
    new Ajax.Request("/YOUR_CONTROLLER/process");
  }
</script>

但是,如果您真的想依赖Rails助手,可以执行以下操作:

<%= observe_form 'user_filter_form', :function => "fix_fields(); #{remote_function(:url => { :action => :process })}" %>

答案 1 :(得分:0)

使用:before:after选项代替:function,具体取决于您是否希望在Ajax请求之后调用您的函数。

请参阅link_to_remote帮助程序的文档,了解可以传递给所有Ajax帮助程序的常见选项,例如observe_form