将已编辑的值contenteditable字段从视图传递到Rails中的控制器

时间:2012-07-19 15:26:42

标签: ruby-on-rails ruby html5 contenteditable

我正在使用Rails 3.1构建一个Web表单,除其他字段外,还包含一个可以编辑单元格的表。我需要将已编辑单元格的文本保存在数据库中。

我正在考虑使用HTML5属性' contenteditable'。我可以使用单元格的innerHTML值。如何将此值传递给Rails控制器(从视图中)?是否可以使用params传递数据?有什么建议吗?

1 个答案:

答案 0 :(得分:1)

标记为contenteditable的HTML容器不会自动传递到带有表单提交的服务器,因此您可能必须使用javascript将内容从这些容器中提取出来并将其传递到某些容器中方式。

一种策略是在提交之前触发的表单中添加一个处理程序,它迭代可信容器并注入隐藏的表单元素。下面的示例使用jQuery,但您可能无需复制思考过程。

var form = $('#my_form');
var element;
$('[contenteditable=true]').each(function(){
  element = $(this);
  form.append($('<input/>', {
    type:'hidden',
    name:element.attr('id'),
    value:element.html()
  }));
});