0

我的 Ruby on Rails Web 应用程序具有标准身份验证。当用户从索引页面登录时,我决定将索引页面建模为“user_sessions”资源的“新”操作。

我决定使用 css 隐藏登录表单,以便它可以在 javascript 启动的模式对话框中显示。

现在的问题是当用户关闭 javascript 时我该怎么办?我在哪里发送他们登录?

我考虑从 javascript 中隐藏登录表单,所以如果 javascript 被关闭,表单将保持可见。这样做的问题是,当页面加载时,表单会在消失之前短暂出现。

4

2 回答 2

2

我不会那样做的。建立一个正常的索引页面,并链接到登录表单。然后使用ujs,将链接设置为remote(因此它是异步管理的)并注册其处理程序以在弹出窗口中显示结果表单。

(in the view)
link_to new_user_session_path, :remote => true, :class => "possibly-modal-dialog"

(in some js or coffee file)
$(document).on "click", "a.possibly-modal-dialog", (event) ->
  event.preventDefault
  # to whatever needed to show the dialog.

这样,没有 javascript 的用户将看到正常的链接,而使用 javascript 的用户只会触发模态对话框。

于 2012-10-02T18:17:44.647 回答
1

你真的需要关闭 javascript 的用户吗?在主页上通知他们:

<noscript>
    <p><font color="red" size="3"><b>Javascript is turned off. <br/> 
    You need to <a href="/settings">change your browser settings</a>.</b></font>
</noscript>
于 2012-10-02T18:22:35.017 回答