弹出登录表单上的模型验证

时间:2012-04-19 06:14:06

标签: javascript ruby ruby-on-rails-3 jquery

我在这里需要帮助 Ruby on rails 当我点击链接“使用jquery登录”时,我有一个用于登录的弹出窗口 现在我想验证用户从数据库输入的用户名和密码 登录弹出窗口是一个部分页面标志in.html.erb 任何解决方案PLZ

2 个答案:

答案 0 :(得分:0)

取决于您使用的验证框架。

关键是在服务器响应后保持对话框不关闭。

(不推荐)如果你没有使用任何javascript验证框架,你必须使“表单”成为“远程表单”,然后提交它,然后在验证失败时显示错误消息。

(我的经验)如果你使用的是javascript验证框架,比如RSV(非常简单的验证),只需定义验证规则,然后实现2个ajax方法:1用于验证表单,另一个是使用的回调函数从远程处理响应并在对话框中显示它。

无论如何,处理对话框的错误消息并不比在常规页面处理它更容易和简单。无论如何,我希望你有我的想法。

答案 1 :(得分:0)

这是我的登录部分,我已经渲染并验证它。

   <div class="clost_holder"> <%= link_to image_tag("/assets/close-new.png"), "javascript:;", :onclick => "close_popup()" %>

</div>

<%= form_for(@user, :as => @user, :url => session_path(@user), :html => {:id => 'sign_in_form', :onsubmit => "return false;"}) do |f| %>
    <div class="login_input_holder mtop20 flt">
      <label>Email</label>

      <p><%= link_to 'dont have an account ?', :controller => 'devise/registrations', :action => 'new' %></p>
      <%= f.email_field :email %>
    </div>
    <div class="login_input_holder mtop10 flt">
      <label>Password</label>
      <%= f.password_field :password %>
    </div>
    <div class="fogot_password "><%= link_to 'forgot password ?', :controller => 'devise/passwords', :action => 'new' %></div>
    <div class="login_btn frt"><input type="submit" value="signin" id='sign_in_btn'></div>


<% end %>

然后验证它。但是你还需要添加jquery.validate和jquery.form文件。

   <script type="text/javascript">


     $("#sign_in_btn").click(function() {

      if (!jQuery("#sign_in_form").valid()) {

          return false;

      }
    else {

        var container = $("#home1_content");

        $("#sign_in_form").submit(function() {

            $(this).unbind('submit').ajaxSubmit({

                success: function(data) {

                    container.html(data);

                     window.location.reload();

                }
            })



        });

    }
});


$(document).ready(function() {
    $("#sign_in_form").validate({
        rules:{
            "user[email]":
            {
                required: true ,
                email: true
            },

            "user[password]":
            {
                required: true
            },
            messages: {
                "user[email]": "This field is required",
                "user[password]": "This field is required"
            }
        }
    });
});


     </script>
相关问题