плагин jQuery Validator на Ruby on Rails 3? - PullRequest
1 голос
/ 25 августа 2011

В настоящее время я хотел бы знать, почему валидатор jquery не работает со следующим кодом на ruby ​​на рельсах? Я заметил, что это работает с тегом 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 %>

1 Ответ

3 голосов
/ 25 августа 2011

Вам нужно выполнить проверку по имени поля вместо идентификатора.Так же, как то, что я сделал ниже.сначала включает необходимые библиотеки 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...