单击,Rails渲染表单部分

时间:2014-06-23 16:20:50

标签: javascript ruby-on-rails renderpartial

我似乎无法解决这个问题,而且我尝试了多个论坛。当我使用javascript点击链接时,我想渲染一个表单。有人可以展示一个如何做到这一点的基本例子吗?

2 个答案:

答案 0 :(得分:6)

只是为了澄清@Luan Nico答案,因为你只需要在你的控制器中不做任何额外的来渲染表单,如果你将表单放在div中,你将会得到更好的服务标记,然后切换该div,以便在您单击按钮时显示。

<强>修正:

一个。制作 div并将表单放入其中

<div id="myForm">
  <%= render "your_form" %>
</div>

用css隐藏div

#myform {
  display:none;
}

℃。创建链接以显示您的

<%= link_to "Your button","#", id: "yourButton" %>

d。在 assets / javascript / application.js 制作新文件中编写您的js,然后在内部application.js中 require

$(document).on("click","#yourButton",function(){
  $(#myform).show();
});

答案 1 :(得分:3)

假设单击按钮时表单没有改变,只需将其可见性切换,您可以将整个表单放在div中,给它一个id,然后你可以使用jquery:

$('#my-button').click(function (){
  $('#div-id').toggle();
});

其中my-button是HTML中按钮的id,而div-id是HTML中的div id(类似<button id="my-button">Click me</button><div id="div-id"><!-- form --></div>)。 或者如果你没有jquery(getElementById等),你也可以使用普通的JS。

如果表单略有变化,您也可以使用此技术,但您需要添加一些条件。否则,您将不得不使用AJAX来获取当前数据。

只是一个警告,尽量避免通过ajax调用传递整个表单HTML,最好的方法是通过json提供数据,并使用JS用数据填充HTML。