2015-11-10 3 views
1

Я пытаюсь интегрировать проверки на стороне клиента в мое приложение rails. Мне нужна проверка, чтобы появиться в модальном. Я в настоящее время использую этот камень для форм:Добавление валидации на стороне клиента для модального использования с помощью 'bootstrap_form' gem

https://github.com/bootstrap-ruby/rails-bootstrap-forms

Я не могу получить заверения работы, и я полагаю, что я либо настраивая это неправильно, или необходимо использовать различные инструменты. Если бы кто-нибудь мог посоветовать, я был бы признателен.

Вот пример формы:

HTML

<div id="signupmodal" class="modal fade" tabindex="-1" role="dialog"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal">×</button> 
        <h3 class="">Sign Up</h3> 
      </div> 
      <div class="modal-body"> 
       <%= bootstrap_form_for :new_user, :html => {:id => 'new_user'}, url: users_path do |f| %> 
       <%= f.text_field :name, hide_label: true, placeholder: "Enter Your Name", icon: "tag", :class => "input-lg required" %> 
       <%= f.text_field :email, hide_label: true, placeholder: "Enter Your Email", icon: "user", :class => "input-lg required" %> 
       <%= f.password_field :password, :html => {:id =>'user_signup_password'}, hide_label: true, placeholder: "Enter Your Password", icon: "lock", :class => "input-lg required" %> 
       <%= f.password_field :password_confirmation, hide_label: true, placeholder: "Confirm Your Password", icon: "lock", class: "input-lg required"%> 
       <%= f.submit "Signup", class: "btn btn-primary btn-lg btn-block signup-submit" %> 
       <% end %> 
       <div class="text-center signup-or"> OR </div> 
       <%= link_to 'Signup with Facebook', '/auth/facebook', :class => 'btn btn-primary btn-lg btn-block' %> 
      </div> 
     </div> 
    </div> 
</div> 

Модель пользователя

class User < ActiveRecord::Base 
    has_secure_password 

    before_create :confirmation_token 

    belongs_to :state 
    belongs_to :country 
    belongs_to :account_type 

    has_many :authentications 

    validates :email, 
    presence: true, 
    uniqueness: {case_sensitive: false}, 
    format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create } 

    validates :password, :presence =>true, :confirmation =>true 
    validates_confirmation_of :password 
end 

ответ

0

Для стороне клиента валидаций вы будете нуждаться Javascript. Проверка на стороне клиента подразумевает, что валидация происходит до того, как она попадает на сервер, настройки, которые вы установили, - это проверки Rails, и они появляются ПОСЛЕ того, как форма была отправлена. Если вы хотите проверить форму перед отправкой, я рекомендую плагин JQuery, такой как http://jqueryvalidation.org/. Добавление проверки Jquery к вашему проекту позволит вам проверить свои формы до того, как они будут отправлены на сервер.

+0

Вы бы порекомендовали этот маршрут по сравнению с драгоценными камнями, такими как icheck или судья? – user4889724

+0

Вы говорите об этом icheck: http://fronteed.com/iCheck/ и этот судья: https://github.com/joecorcoran/judge? Если так, я проверю, похоже, не поможет вам, однако судья действительно кажется довольно хорошим решением именно той проблемы, которую вы пытаетесь решить. Я не использовал icheck или судьи, только Jquery validator, но я бы дал Judge попробовать, из того, что я прочитал, он кажется отличной альтернативой для проверки на стороне клиента. – rii

+0

Большое вам спасибо за отзыв! – user4889724