我被困在这里需要帮助 Ruby on rails 我有一个用于登录的弹出窗口,当我使用 jquery 单击链接“登录”时它即将出现现在我想验证用户从数据库输入的用户名和密码登录弹出窗口是部分页面标志in.html.erb 任何解决方案。请
问问题
1396 次
2 回答
0
取决于您使用的验证框架。
关键是在服务器响应后保持对话框不关闭。
(不推荐)如果您没有使用任何 javascript 验证框架,则必须将“表单”设置为“远程表单”,然后提交,如果验证失败则显示错误消息。
(我的经验)如果您使用的是javascript验证框架,例如RSV(真正简单的验证),只需定义验证规则,然后实现2个ajax方法:1用于验证表单,另一个是用于处理的回调函数来自远程的响应并将其显示在对话框中。
无论如何,处理对话框的错误消息并不比处理常规页面的错误消息容易和直接。无论如何,我希望你明白我的想法。
于 2012-04-19T06:30:18.817 回答
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>
于 2012-04-19T06:42:32.043 回答