0

我使用 jquery 渲染部分点击。这是它的代码

$('.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>

使用上面的代码,问题是我的布局搞砸了。我用部分形式更新的 div 显示标题,因此它是布局中的布局,但我的 client_validation_gem 属性有效。一旦我说 layout false 我的布局问题得到解决,但我失去了 client_side_validation gem 属性。我不知道是什么问题,我真的很沮丧。任何帮助或指导都会非常有帮助。谢谢,

4

2 回答 2

0

rails.validations如果您rails.validations.custom使用layout: false. 您可能必须将它们包含在部分中(类似这样)。

= javascript_include_tag 'rails.validations'

编辑

刚刚看到您正在动态添加表单。添加表单后,您还需要触发这样的客户端验证:

$('form[data-validate]').validate();
于 2013-07-09T19:51:22.790 回答
0

最后我想通了。我必须删除 rails.validations.js 文件,因为它已经过时了。并添加 '$('form[data-validate]').validate();' 正如@David 建议的那样,将 js 文件添加到 js 文件中。感谢帮助

于 2013-07-10T14:47:18.603 回答