代码之家  ›  专栏  ›  技术社区  ›  Jamal Abdul Nasir

控制器中的RJS

  •  0
  • Jamal Abdul Nasir  · 技术社区  · 16 年前

    TypeError:Element.update不是函数

       respond_to do |format|
        format.js do
          responds_to_parent do
            render :update do |page|
              page.replace_html 'errorLay', :text => "Page with the same name already exists."
              page.show 'errorLay'
              page.delay(2) do
                page.hide 'errorLay'
              end
            end
          end
        end
      end
    
    • 那么我怎样才能摆脱这个错误。。。?
    3 回复  |  直到 16 年前
        1
  •  1
  •   dombesz    16 年前

    可能是错误的,因为您试图在respond-to块中使用responses-to-parent。

    要正确响应请求类型,您可以这样做

    if request.xhr?
      responds_to_parent do
        render :update do |page|
          page.replace_html 'errorLay', :text => "Page with the same name already exists."
          page.show 'errorLay'
          page.delay(2) do
            page.hide 'errorLay'
          end
        end
      end
    end
    

    在这种情况下,只有js响应,而ajax调用是js。

        2
  •  1
  •   Salil    16 年前

    在控制器中只写

       render :update do |page|
          page.replace_html 'errorLay', :text => "Page with the same name already exists."
          page.show 'errorLay'
          page.delay(2) do
            page.hide 'errorLay'
          end
        end
    

    以及您在Ajax中使用的内容 link_to_remote don't write :update=>'some_div'

        3
  •  0
  •   Pär Wieslander    16 年前

    prototype.js 在你的布局中。一定要有

    <%= javascript_include_tag "prototype" %>
    

    在文档布局的标题部分。