【问题标题】:using both :url and :function on observe_form在 observe_form 上同时使用 :url 和 :function
【发布时间】:2009-07-29 23:50:45
【问题描述】:

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

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

谢谢!!

【问题讨论】:

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


    【解决方案1】:

    您最好的选择是深入研究实际的 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 })}" %>
    

    【讨论】:

      【解决方案2】:

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

      请参阅link_to_remote helper 的文档,了解可以传递给所有 Ajax 助手的常用选项,例如 observe_form

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 2011-05-22
        • 1970-01-01
        • 2016-04-15
        • 2011-03-15
        相关资源
        最近更新 更多