0

Rails 4 フォームを検証するため にformValidation プラグインを使用しています。この質問に従って、フォームが正しく送信されるように、フィールド「names」を「name="firstname"」から「name="user[firstname]」に変更する必要がありました。ただし、formValidation プラグインは、フィールドの「id」ではなく、フィールドの「name」を使用して検証コードを実行することに依存しています。フィールドの名前が「firstname」の場合は formValidation を機能させることができますが、名前が「user[firstname]」の場合は機能しません。ブラケットを使用して Javascript (ここでは初心者) に「名前」の値を書き込む方法はありますか?

これが私のフォームです。私はもう試した

<%= form_for(resource, :as => resource_name,  id: 'new_user', :url => registration_path(resource_name)) do |f| %>

   <% if resource.errors.any? %>
<%= devise_error_messages! %>
<% end %>

<%=    f.text_field :firstname, :name=>'user[firstname]', :class => 'form-control', :autofocus => true, :required => true,  :placeholder => 'FIRST NAME' %> 

<%=    f.text_field :lastname, :name =>'user[lastname]', :class => 'form-control', :autofocus => true, :required => true,  :placeholder => 'LAST NAME ' %>         

 <%=    f.email_field :email, :name=>'user[email]', :class => 'form-control ', :autofocus => true, :required => true,  :placeholder => 'YOUR EMAIL', :style=>"width:100%" %>

  <%=    f.password_field :password, :class => 'form-control  ', :name=>'user[password]', :autofocus => true, :required => true,  :placeholder => 'YOUR PASSWORD' %> 
      <%=    f.password_field :password_confirmation,  :name=>'user[password_confirmation]', :class => 'form-control  ', :autofocus => true, :required => true,  :placeholder => 'CONFIRM YOUR PASSWORD' %>

 <%= f.submit 'Create Account',  :class => 'btn btn-aqua btn-lg btn-block', 
                                        :style => 'margin-bottom:5px' %>  


<%end%>


<script>
$(document).ready(function() {
    $('#new_user').formValidation({
        framework: 'bootstrap',

        icon: {
            valid: 'fa fa-check',
            invalid: 'fa fa-times',
            validating: 'fa fa-refresh'
        },
        fields: {
            user[firstname]: {
                validators: {
                    notEmpty: {
                        message: 'Please enter your first name'
                    }
                }
            },

             user[lastname]: {
                validators: {
                    notEmpty: {
                        message: 'Please enter your last name'
                    }
                }
            },


            user[email]: {
                validators: {
                    notEmpty: {
                        message: 'The email address is required'
                    },
                    emailAddress: {
                        message: 'The input is not a valid email address'
                    }
                }
            },
            user[password]: {
                validators: {
                    notEmpty: {
                        message: 'The password is required'
                    },

                }
            },

              user[password_confirmation]: {
                validators: {
                    notEmpty: {
                        message: 'Please confirm your password'
                    },
                    identical: {
                        field: 'user[password]',
                        message: 'The passwords do not match'
                    }
                }
            }
            button: {
    // The submit buttons selector
    selector: '[type="submit"]:not([formnovalidate])',

    // The disabled class
    disabled: 'disabled'
}

        }
    });
});
</script>
4

2 に答える 2

2

バリデータ プラグインのドキュメントによると、

フィールド名に .、[、] などの特殊文字が含まれている場合は、一重引用符または二重引用符で囲む必要があります。特殊な名前でフィールドを検証する例を参照してください

したがって、フィールド名を引用符で囲むだけで、""

于 2015-05-10T17:41:54.260 に答える
0

私の元のコードは、「名前」の命名に正しい形式を使用していませんでした...しかし、「ボタン」のすぐ上のランダムなコンマも欠落していたため、デバッグできませんでした。私は作業コードを投稿しています:

<script>
$(document).ready(function() {
    $('#new_user').formValidation({
        framework: 'bootstrap',

        icon: {
            valid: 'fa fa-check',
            invalid: 'fa fa-times',
            validating: 'fa fa-refresh'
        },
        fields: {
            'user[firstname]': {
                validators: {
                    notEmpty: {
                        message: 'Please enter your first name'
                    }
                }
            },

             'user[lastname]': {
                validators: {
                    notEmpty: {
                        message: 'Please enter your last name'
                    }
                }
            },


           'user[email]': {
                validators: {
                    notEmpty: {
                        message: 'The email address is required'
                    },
                    emailAddress: {
                        message: 'The input is not a valid email address'
                    }
                }
            },
            'user[password]': {
                validators: {
                    notEmpty: {
                        message: 'The password is required'
                    },

                }
            },

              'user[password_confirmation]': {
                validators: {
                    notEmpty: {
                        message: 'Please confirm your password'
                    },
                    identical: {
                        field: 'user[password]',
                        message: 'The passwords do not match'
                    }
                }
            },
            button: {
    // The submit buttons selector
    selector: '[type="submit"]:not([formnovalidate])',

    // The disabled class
    disabled: 'disabled'
}

        }
    });
});
</script>
于 2015-05-10T17:59:01.347 に答える