2009-08-20 44 views
4

这是一个非常基本的问题,但我找不到一个好的答案。我在我的Rails应用程序中有一个页面,其中有许多可以“标记”的对象。点击标志按钮应该会显示一个带有确认,小表格等的小方框。问题是我无法弄清楚如何使用RJS模板来做到这一点。Ajax使用Ruby on Rails弹出框

我一直在使用page.insert_html,但这需要一个ID。为了使这项工作,我不得不分配每个可以标记一个唯一的ID。这看起来不是很干净,仍然让我想知道确保只有一个表单可以显示,并且提交时该框消失。有没有更简单的解决方案这个问题?我基本上想创建一个类似于SO上出现的旗帜框的东西。对不起,我对RJS模板比较陌生。谢谢。

回答

4

你可以用jquery facebox来做到这一点。这种事情最好不要在rjs中完成,但是在不显眼的javascript中,这是每个人都在朝这个方向前进的地方,它更加干净。您可以将facebox rel连接到您的链接,然后单击时可以在弹出窗口中打开表单。

然后在你的弹出窗口中,你可以做你的窗体和重定向或任何。当弹出窗口打开时,用户将只能点击一个覆盖页面,因此在页面外部点击可能无效或关闭表单(我认为您可以在配置中选择)。

听起来像是要走的路。

+0

太棒了,我注意到有很多灯箱插件的rails。你是否推荐facebox与其他人?我看到一些与原型/ scriptaculous /看起来很吸引人的东西(比如iBox)。 – Anon 2009-08-21 17:05:33

+0

我用过几个。这绝对是最好的。易于使用,看起来不错。 – nitecoder 2009-08-22 11:02:55

2

jQuery UI还有一个对话框小部件,对于这类事情非常有效。这是一个很好的小部件,你可以自定义你的jQuery UI库来包含(或者如果你想让瘦客户端传递给浏览器的话,也可以排除其他方便的小部件)(手风琴,进度条等)

查看对话框示例jQuery Dialog