简体   繁体   English

Parsley.js的Rails嵌套属性无法验证

[英]Parsley.js rails nested attributes not validating

I have some nested attributes (using simple_fields_for) in a simple_form in rails. 我在rails的simple_form中有一些嵌套属性(使用simple_fields_for)。

The main form starts like this, and parsley is working fine: 主要形式是这样开始的,并且香菜运转良好:

<%= simple_form_for(@enquiry, wrapper: :vertical_form, html: {"data-parsley-validate" => ''}) do |f| %>

<%= f.input :total_budget, class: 'form-control', placeholder: 'Please enter your total or per head budget', label: 'Budget', input_html: { "data-parsley-error-message" => "Please enter a budget", "data-parsley-trigger" => "focusin focusout change" } %>

However, in the form further down I have this: 但是,在下面的表格中,我有:

<%= f.simple_fields_for :client do |builder| %>
    <%= render 'sign_up_fields', f: builder %>
  <% end %>

and the rendered partial is this: 呈现的部分是这样的:

    <div class="row">
  <div class="col-md-6">
    <div class="form-group">
        <%= f.input :first_name, class: 'form-control', placeholder: 'First name' %>
    </div>
  </div>
  <div class="col-md-6">
    <div class="form-group">
        <%= f.input :last_name, class: 'form-control', placeholder: 'Last name' %>
    </div>
  </div>
</div>

<%= f.simple_fields_for :user do |builder| %>

<div class='row'>
    <div class="col-md-6">
      <div class="form-group">
        <%= builder.input :email, class: 'form-control', placeholder: 'Email', required: "true" %>
      </div>
      <% if builder.object.errors[:email] %>
            <%= f.object.errors[:email].join(", ") %>
            <% end %>
    </div>
    <div class="col-md-6">
      <div class="form-group">
          <%= f.input :phone_number, class: 'form-control', placeholder: 'Phone number' %>
      </div>
    </div>
    <div class="col-md-6">
      <div class="form-group">
        <%= builder.input :password, class: 'form-control', placeholder: 'Password', required: "true" %>
      </div>
      <% if builder.object.errors[:password] %>
            <%= f.object.errors[:password].join(", ") %>
            <% end %>
    </div>

  <% end %>
</div>

I have tried adding the parsley-data-validation to the simple_fields_for parts in various ways, tried it without, and tried adding parsley validations to the actual fields but that hasn't worked either. 我尝试以各种方式将parsley-data-validation添加到simple_fields_for部件中,尝试不使用它,然后尝试将parsley校验添加到实际字段中,但这也不起作用。

Is there something else I should be doing differently? 我还有其他应该做的事情吗?

Cheers 干杯

I had the wrong ID for the field I was validating. 我所验证的字段的ID错误。 I still had to use extra js to validate the field; 我仍然必须使用额外的js来验证字段; it wasn't picked up by the main HTML: {"data-parsley-validate" => ''} in the top of the form. 表单顶部的主要HTML并未使用它: {"data-parsley-validate" => ''}

$('#enquiry_client_attributes_user_attributes_email').parsley('validate');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM