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