Rails update.js.erb不执行javascript - 代码日志

Rails update.js.erb不执行javascript

我正在rails中建立一个表单,通过ajax编辑一个现有的问题。

在提交表单并且问题已更新之后,控制器中的更新方法会渲染update.js.erb,这将再次隐藏该表单。

我的问题是update.js.erb中的javascript代码根本没有执行。

我知道该文件是呈现,因为它显示在服务器输出,当我把一个

<% raise params %>

进入它,它的工作。

但是,即使是最简单的

alert('hello');

在同一个文件中没有效果。

我排除了javascript和jquery配置问题,因为相同的代码在我的edit.js.erb文件中完美工作。这只是在update.js.erb中不起作用。

我失踪了什么

编辑:

Firebug没有显示错误。以下是firebug网络面板中的响应:

alert('hello');
$('#question_body').replaceWith('<h4><p>jhsdfjhdsb k jdfs j fjfhds <strong>jfshaflksd;hf sdldfs l fdsalkhdfskhdfs</strong>;fd lfdksh hfdjaadfhsjladfhsjadfs ;df sjldfsj dfas hafdsj fdas ;ldfas ldfs df dl;hdf fdh ;fdj ;lfads</p></h4>');

def更新

编辑2:

这是控制器的动作:

def update
  respond_to do |format|
    if @question.update_attributes(params[:question])
      format.html { redirect_to @question, :flash => { :success => 'Question was successfully updated.' } }
      format.json { head :no_content }
      format.js {}
    else
      format.html { render action: "edit" }
      format.json { render json: @question.errors, status: :unprocessable_entity }
    end
  end
end
你使用haml还是html.erb?如果是前者,那么这可能是解决办法:

respond_to do |format|
  ...
  format.js {render layout: false}
end

我有完全相同的问题,早期发现这个问题,花了一个小时左右的谷歌在StackOverflow上找到这个问题,导致我:jQuery + Ajax + Haml. js.erb files not firing

http://stackoverflow.com/questions/18936633/rails-update-js-erb-not-executing-javascript

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Rails update.js.erb不执行javascript