Ruby on Rails 3上的jQuery Validator插件? [英] jQuery Validator Plugin on Ruby on Rails 3?

查看:81
本文介绍了Ruby on Rails 3上的jQuery Validator插件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当前,我想知道为什么jquery验证程序不能与Rails上的ruby上的以下代码一起使用?我注意到它适用于text_field标记,但不适用于f.text_field 有谁知道如何使其与f.text_field一起使用?谢谢

Currently I would like to know why the jquery validator doesn't work with the following code on ruby on rails? I noticed it works with text_field tag but not with f.text_field Does anyone know how to make it work with f.text_field? Thanks

文档准备功能

    $("#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 %>

推荐答案

您需要对字段名称(而不是ID)进行验证.就像我在下面所做的一样. 首先包含必需的jquery库.

You need to do validation on field's name instead of id. Just like what i have done below. first includes required jquery libraries.

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

这篇关于Ruby on Rails 3上的jQuery Validator插件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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