ruby-on-rails – 从远程真实轨道处理响应时出错?

我正在使用rails remote true进行ajax调用.但我在处理休息形式控制器时有错误.我正在做的是我已经放置了一个部分的表单,我第一次在视图中呈现,我也在form_for的html选项中给它一个id.我还在该表单上应用了一些
jquery,如保存和取消按钮以及其中一个字段上的日期选择器的一个脚本.当我使用format.js处理来自服务器的repose来渲染js文件时,我在其中放置了如下代码

if @vairable.save
 format.js { render 'some-file' }
else
 format.js { render 'something'}
end  

如果变量保存成功我正确关闭表单,但如果发生验证,我通过在js.erb文件中编写java脚本代码再次呈现表单.我在处理此回复时遇到问题.错误正在显示,但当表单再次出现错误时,应用于其字段和按钮的jquery事件不起作用. jquery事件不会发生.我非常关心这个问题.

请帮帮我…
提前致谢…

只有在模型验证发生并且使用新的渲染表单显示验证轨道时,才会出现此问题.

最佳答案 您应该将响应包装在respond_to块中,如下所示:

respond_to do |format| 
  if @variable.save
    format.js { render 'some-file' }
  else
    format.js { render 'something'}
  end  
end

编辑:您的jQuery标签应更改为$(document).on(…).例如.

#change this:
$("#your-target-id").click(function(){
  alert("This doesn't work after your have submitted via ajax")
});

#to this:
$(document).on("click", "#your-target-id", function() {
  alert("This should work after ajax submission, and when errors are displayed");
});
点赞