将编辑的值contenteditable字段从视图传递到控制器在Rails中
问题描述:
我正在使用Rails 3.1构建一个Web表单,其中包含可以编辑单元格的表格。我需要将编辑单元格的文本保存到数据库中。将编辑的值contenteditable字段从视图传递到控制器在Rails中
我想使用HTML5属性'contenteditable'。我可以使用单元格的innerHTML值。我怎样才能将这个值传递给Rails控制器(从视图)?是否可以使用参数传递数据?有什么建议么?
答
标记为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()
}));
});
嗨,感谢您的回复。不幸的是,将输入附加到表单不适用于我。是否有另一种方法来传递参数? – 2012-07-20 21:35:10
您可以尝试发送表单数据作为ajax请求。遵循类似的逻辑 - 遍历contenteditable块来构建数据集,将其与表单中的数据合并,并通过xmlhttprequest发送出去。 – 2012-07-23 13:28:59