【问题标题】:jQuery Validator Plugin on Ruby on Rails 3?Ruby on Rails 3 上的 jQuery 验证器插件?
【发布时间】:2011-08-25 00:34:18
【问题描述】:

目前我想知道为什么 jquery 验证器不能在 ruby​​ on rails 上使用以下代码?我注意到它适用于 text_field 标签,但不适用于 f.text_field 有谁知道如何使它与 f.text_field 一起工作?谢谢

文件准备功能

    $("#user_signup_form").validate({
    rules: {
    user_username:{
    required: true,
    minlength: 3
    },
    user_email:{
    required: true,
    email: true
    },
    user_password:{
    required: true,
    minlength: 7
    },
    user_password_confirmation:{
    required: true,
    minlength: 7,
    equalTo: "#user_password"
    }
    },
    messages: {
    user_username:{
    required: "Required",
    minlength: "Min Length is 3 characters"
    },
    user_email:{
    required: "Required",
    email: "A valid email address is required"
    },
    user_password:{
    required: "Required",
    minlength: "Min Length is 7 characters"
    },
    user_password_confirmation:{
    required: "Required",
    minlength: "Min Length is 7 characters",
    equalTo: "New Password Doesn't Match"
    }
    }
    });


    <%= form_for(:user, url: signup_path, :html =>{:id => "user_signup_form"}) do |f| %>
    <% if @user.errors.any? %>
    <div id="error_explanation">
    <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
    <ul>
    <% @user.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
    <% end %>
    </ul>
    </div>
    <% end %>

    <div class="field">
    <%= f.label :username, "Select a username for tingle" %><br />
    <%= f.text_field :username %>
    </div>

    <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
    </div>

    <div class="field">
    <%= f.label :password, "Select a password for tingle" %><br />
    <%= f.password_field :password %>
    </div>

    <div class="field">
    <%= f.label :password_confirmation, "Confirm password" %><br />
    <%= f.password_field :password_confirmation %>
    </div>

    <div class="actions">
    <%= f.submit defined?(@button_label)? @button_label : "Signup"   %>
    </div>
    <% end %>

【问题讨论】:

    标签: jquery ruby-on-rails validation


    【解决方案1】:

    您需要对字段名称而不是 id 进行验证。就像我在下面所做的一样。 首先包括所需的 jquery 库。

    <%= javascript_include_tag "jquery-1.6.2.min.js" %>
    <%= javascript_include_tag "jquery.validate.js" %>
    
    
    <%= form_for(:user, url => signup_path, :html =>{:id => "user_signup_form"}) do |f| %>
        <% if @user.errors.any? %>
            <div id="error_explanation">
              <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
              <ul>
                <% @user.errors.full_messages.each do |msg| %>
                    <li><%= msg %></li>
                <% end %>
              </ul>
            </div>
        <% end %>
    
        <div class="field">
          <%= f.label :username, "Select a username for tingle" %>
          <br/>
          <%= f.text_field :username %>
        </div>
    
        <div class="field">
          <%= f.label :email %>
          <br/>
          <%= f.text_field :email %>
        </div>
    
        <div class="field">
          <%= f.label :password, "Select a password for tingle" %>
          <br/>
          <%= f.password_field :password %>
        </div>
    
        <div class="field">
          <%= f.label :password_confirmation, "Confirm password" %>
          <br/>
          <%= f.password_field :password_confirmation %>
        </div>
    
        <div class="actions">
          <%= f.submit defined?(@button_label) ? @button_label : "Signup" %>
        </div>
    <% end %>
    
    
    
    <script type="text/javascript">
        $(document).ready(function() {
            $("#user_signup_form").validate({
                rules: {
                    "user[username]":{
                        required: true,
                        minlength: 3
                    },
                    "user[email]":{
                        required: true,
                        email: true
                    },
                    "user[password]":{
                        required: true,
                        minlength: 7
                    },
                    "user[password_confirmation]":{
                        required: true,
                        minlength: 7,
                        equalTo: "#user_password"
                    }
                },
                messages: {
                    "user[username]":{
                        required: "Required",
                        minlength: "Min Length is 3 characters"
                    },
                    "user[email]":{
                        required: "Required",
                        email: "A valid email address is required"
                    },
                    "user[password]":{
                        required: "Required",
                        minlength: "Min Length is 7 characters"
                    },
                    "user[password_confirmation]":{
                        required: "Required",
                        minlength: "Min Length is 7 characters",
                        equalTo: "New Password Doesn't Match"
                    }
                }
            });
        });
    </script>
    

    【讨论】:

    • 它工作正常,但它不能使用嵌套属性字段任何线索为什么?
    • @vishB 没有任何代码,没有人可以帮助你。尝试打开新线程
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多