formValidation jQuery插件无法读取Rails安全的表单名称 [英] formValidation jquery plugin does not read rails safe form names

查看:102
本文介绍了formValidation jQuery插件无法读取Rails安全的表单名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 formValidation插件来验证我的Rails 4表单. 根据此问题,我必须将我的字段名称"从"name ="firstname""更改为"name ="user [firstname]"",以便表单可以正确提交.但是,formValidation插件依赖于使用字段的名称"而不是字段的"id"来运行验证代码.如果字段名称是"firstname",则可以使formValidation工作,但如果名称是"user [firstname]",则不能使formValidation工作.是否可以使用方括号在Javascript(此处为新手)中写入名称"值?

I am using the formValidation plugin to validate my Rails 4 form. As per this question, I had to change my field "names" from 'name="firstname"' to 'name="user[firstname]"' so that the forms would submit correctly. However, the formValidation plugin relies on using the "name" of field as opposed to the "id" of the field to run the validation code. I can make the formValidation work if the name of a field is "firstname" but NOT if the name is "user[firstname]". Is there a way to write a "name" value in Javascript (newbie here) using brackets?

这是我的表格.我已经尝试过

Here is my form. I've tried

<%= 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>

推荐答案

根据您的验证器插件的文档

According to the docs for your validator plugin,

如果字段名称包含特殊字符,例如.,[,],则必须将其用单引号或双引号引起来.请参阅带有特殊名称的``验证字段''示例

If the field name contains special characters such as ., [, ], you must wrap it between single or double quote. See the Validating field with special name example

因此,只需将您的字段名称放在引号"中即可

So just put your field names inside quotes, ""

这篇关于formValidation jQuery插件无法读取Rails安全的表单名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆