Jquery 成功注册后如何表示祝贺?

Jquery 成功注册后如何表示祝贺?,jquery,ruby-on-rails,Jquery,Ruby On Rails,我正在使用Rails、Desive gem、jQuery验证插件和引导。 我可以打电话给$('祝贺').show();当用户提交,但它是关闭的,因为用户应该在注册后自动重定向。 而且,如果页面是第一次加载的,我不能调用,是吗? 如何在正确的时间调用show函数? 我的HTML表单 名字 姓 电子邮件 密码 重新输入密码 。。闪存系统就是为了处理这种情况而准备的。闪存中设置的值将仅保留一次重定向。如果用户要刷新页面,闪存值将自动取消设置,用户将不会再次看到该消息 您的用户提交表单 后端的控制

我正在使用Rails、Desive gem、jQuery验证插件和引导。 我可以打电话给$('祝贺').show();当用户提交,但它是关闭的,因为用户应该在注册后自动重定向。 而且,如果页面是第一次加载的,我不能调用,是吗? 如何在正确的时间调用show函数? 我的HTML表单


名字
姓
电子邮件
密码
重新输入密码
。。闪存系统就是为了处理这种情况而准备的。闪存中设置的值将仅保留一次重定向。如果用户要刷新页面,闪存值将自动取消设置,用户将不会再次看到该消息

  • 您的用户提交表单
  • 后端的控制器设置指示成功的闪存消息。它会重定向到相应的页面
  • 重定向页面上的视图代码读取flash消息并设置一些js变量
  • 该视图上的js代码读取先前设置的变量,并根据该值显示祝贺
我不记得erb语法,但我可以编写一些伪代码:

if flash message["signup_success"] == true, then
   print this text "var showCongrats = true;"
else print this text "var showCongrats = false;"
在js代码中

$(function() {
   if (showCongrats) { // show the modal; 
   }
})
我们只希望erb将变量声明打印到页面上

您可以做的是:

  • 在用户提交表单后,将
    logged\u成功
    会话变量设置为
    true
  • 在重定向到页面的布局中,检查该变量是否设置为true
    • 如果是这样的话,请包括理想情况下处于部分状态的Congatz模态,否则什么也不做
  • 在重定向到操作中,取消设置变量“已成功登录”,或将其设置为“错误”
用户单击模态表单中的
确定
按钮后,是否可以重定向?你的代码在哪里?@JRGalia他可以,但这有点欺骗用户,因为他还没有登录。除非他真的用Ajax让用户登录,但这太过分了。你可以在重新路由到的页面加载时加载模式,对吗?还有,只是一个提示,但我会放弃这个想法,这会让我作为一个用户非常恼火。简单地被重新路由到另一个页面就足以让我知道我成功登录了。@Jeemusu我同意,但前提是这是一个模式。在我看来,flash消息更合适:)为什么需要会话变量?如果用户在该页面上,我认为可以安全地假设他们必须登录,对吗?你可以检查用户是否登录,是的。但是你不能检查他是否刚刚登录(登录后的第一页视图)。你想检查是否调用一些js,是吗?如果是,你能举个例子吗,因为我没有从视图调用js的经验。更新了答案。您没有从视图中调用js。您正在使用erb向页面输出javascript变量声明。就这样。在dom就绪的js上执行时,它只检查名为showCongreats的全局变量是否有truthy值。如果是,则显示模式。
$(function() {
   if (showCongrats) { // show the modal; 
   }
})