Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails 3中的UJS部分渲染_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript Rails 3中的UJS部分渲染

Javascript Rails 3中的UJS部分渲染,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我正在努力弄清楚如何在Rails中实现UJS(特别是带有jQuery的Rails3)。我已经完成了,并且可以遵循通过AJAX提交表单时的操作,但是我很难将这个概念扩展到将javascript函数附加到视图文件中的html元素。最终,我希望能够创建一个表单,其中根据选择的序列单选按钮呈现不同的部分。我应该考虑使用原型遗留帮助程序来实现这一点吗?我什么时候需要创建一个.js.erb文件 对不起,对于新手的问题,我找不到太多明确概述UJS概念的内容,以及如何在Rails应用程序/RJS转换代码中使用U

我正在努力弄清楚如何在Rails中实现UJS(特别是带有jQuery的Rails3)。我已经完成了,并且可以遵循通过AJAX提交表单时的操作,但是我很难将这个概念扩展到将javascript函数附加到视图文件中的html元素。最终,我希望能够创建一个表单,其中根据选择的序列单选按钮呈现不同的部分。我应该考虑使用原型遗留帮助程序来实现这一点吗?我什么时候需要创建一个.js.erb文件


对不起,对于新手的问题,我找不到太多明确概述UJS概念的内容,以及如何在Rails应用程序/RJS转换代码中使用UJS。任何帮助都将不胜感激

有关UJS概念的更多信息,请参考以下链接:


通过使用表单上的
remote=>true
,您的数据将进入服务器,返回的所有javascript将在页面上下文中执行,因此下面是一个简单的示例:

<%= form_tag '/action_path', :remote => true do %>
  <%= radio_button_tag 'partial', 'one' %>
  <%= radio_button_tag 'partial', 'two' %>
  <%= submit_tag 'select' %>
<% end %>

<div id="partial_holder">

</div>

在action.js.erb文件中

$('#partial_holder').html("<%= escape_javascript(render(:partial => params[:partial])) %>")
$('#partial_holder').html(<%= escape_javascript(render(:partial => params[:partial])) %>)
$('partial_holder').html(“params[:partial])%>)

出于一些奇怪的原因,我认为上述解决方案不起作用。这确实:

Element.replace('element_id', '<%= escape_javascript(render(:partial=>"foo")) %>');
Element.replace('Element_id','foo'))%>;

请注意action.js.erb文件中围绕ruby块的“.”

$('#partial_holder').html("<%= escape_javascript(render(:partial => params[:partial])) %>")
$('#partial_holder').html(<%= escape_javascript(render(:partial => params[:partial])) %>)
$('#partial_holder').html(params[:partial]))%>)
上面一行有一个小错误,html方法中的ruby标记应该在引号中。以下内容将起作用

$('#partial_holder').html("<%= escape_javascript(render(:partial => params[:partial])) %>")
$('partial_holder').html(“params[:partial])%>)

感谢您的回复-问题是,我不希望表单提交本身是AJAXy的,只希望表单中的元素……如果只发送表单的一部分,那么您将不得不生成多个表单,或者只需生成自定义javascript,以使用表单中的元素发送请求。在没有任何代码或示例的情况下,要准确理解您想要做什么有点困难:/从我所读到的内容来看,Rails 3似乎要求开发人员通过删除许多帮助器方法来编写更多自己的javascript,因此感谢您对自定义javascript的评论-我只需要稍微温习一下我的js技能!我和@Sonia有同样的问题,加上拯救了这一天!