我使用jquery在click上进行部分渲染。这是它的代码
$('.actCell').click(function (){
alert('Load was performed.');
$.get('/policies/new', function(data) {
$('.policyAddForm').html(data);
});
});
这是控制器代码
def new
@policy = Policy.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @policy }
end
end
这是我的application.html
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Passport</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<%= stylesheet_link_tag "application", :media => "all" %>
</head>
<body>
<div class="header">
<div class="container">
<img src="/assets/ph_logo.png">
<div class="user"><%=current_user.email%> <div class="userDrop"></div></div>
<div class="userDropMenu">
<div class="userActRow">change password</div>
<div class="userActRow">sign out</div>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<%= yield %>
</div>
</div>
<%= javascript_include_tag "application" %>
<%= yield :javascript %>
</body>
</html>
使用上面的代码问题是我的布局搞砸了。我更新了部分表单显示标题,因此它是布局中的布局,但我的client_validation_gem属性工作。一旦我说布局错误我的布局问题得到解决但我丢失了client_side_validation gem属性。我不知道是什么问题,我真的很沮丧。任何帮助或指导都会非常有帮助。谢谢,
答案 0 :(得分:0)
如果您使用rails.validations
,您似乎未加载rails.validations.custom
和layout: false
js文件。您可能必须将它们包含在部分内容中(类似这样)。
= javascript_include_tag 'rails.validations'
修改
刚看到您正在动态添加表单。在添加表单后,您还需要触发这样的客户端验证:
$('form[data-validate]').validate();
答案 1 :(得分:0)
最后我想通了。我必须删除rails.validations.js文件,因为它已过时。并添加'$('form [data-validate]')。validate();'以@David建议的js文件。谢谢你的帮助