我正在使用 Rails 3.1 构建一个 Web 表单,该表单在其他字段中包含一个可以编辑其单元格的表格。我需要将已编辑单元格的文本保存在数据库中。
我正在考虑使用 HTML5 属性“contenteditable”。我可以使用单元格的 innerHTML 的值。如何将此值传递给 Rails 控制器(从视图中)?是否可以使用参数来传递数据?有什么建议么?
我正在使用 Rails 3.1 构建一个 Web 表单,该表单在其他字段中包含一个可以编辑其单元格的表格。我需要将已编辑单元格的文本保存在数据库中。
我正在考虑使用 HTML5 属性“contenteditable”。我可以使用单元格的 innerHTML 的值。如何将此值传递给 Rails 控制器(从视图中)?是否可以使用参数来传递数据?有什么建议么?
标记为的 HTML 容器contenteditable
不会通过表单提交自动传递到服务器,因此您可能必须使用 javascript 从这些容器中提取内容并以某种方式传递它们。
一种策略是向表单添加一个处理程序,该处理程序在提交之前触发,它遍历 contenteditable 容器并注入隐藏的表单元素。下面的示例使用 jQuery,但您可能可以不使用 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()
}));
});