将编辑的值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() 
    })); 
}); 
+0

嗨,感谢您的回复。不幸的是,将输入附加到表单不适用于我。是否有另一种方法来传递参数? – 2012-07-20 21:35:10

+0

您可以尝试发送表单数据作为ajax请求。遵循类似的逻辑 - 遍历contenteditable块来构建数据集,将其与表单中的数据合并,并通过xmlhttprequest发送出去。 – 2012-07-23 13:28:59