3

我在 Rails 项目中使用 Prototype 对表单进行就地编辑(通过 Ajax.InPlaceEditor)。但是,我不希望它立即回发并进行更新 - 表单本身非常复杂,用户可能会决定放弃他们的更改。只是现在他们不能,因为表单已经(对他们)无形地更新了数据库。

因此,我想做的是使用 Prototype InPlaceEditor 而不指定回发 url(或使其成为返回 true 的通用回发 url),然后作为该字段的“onLeaveEditMode”的一部分,让它更新一个隐藏的表单字段新值。

这样,当用户获得就地编辑器的精美外观但仍然可以按底部的“取消”并撤消所有更改时。

所以,我在一个小测试原型中开始了这个任务,它似乎可以工作——除了它意味着大量的 javascript 代码,并且在某种程度上,感觉就像在混蛋 InPlaceEditor 的目的。这必须是一个已解决的问题,但我的 google-fu 并没有像我想要的那样返回任何东西。

有点像这样(但显然不是网格表单),您可以在其中就地编辑字段,但必须按“保存”来提交更改: http ://www.nitobi.com/products/grid/editors/

几个问题:1)是否有现有的 Rails 插件或 Prototype 类可以为我执行此操作?2)如果不是,我的方法听起来合理吗?

谢谢!!

4

1 回答 1

3

如果您只是想要内联编辑的花哨感觉。假装。

  • 保持表单域无边框。所以它看起来像普通的文本。
  • 在悬停时突出显示字段背景。
  • 焦点显示边框(通过添加类或更改内联样式)。
  • 在模糊上再次隐藏边框。

您不需要幽灵隐藏字段。而且大部分东西都是css。

使用 jquery 最小化 javascript 代码。:-)

于 2010-01-23T19:58:58.540 回答