2011-06-06 28 views

回答

32

你必须使用JavaScript的一种方式或其他,因为它会用一个文本或像它不会作为“标准”的表单元素的工作。如果你喜欢,你可以在你的表单中创建一个隐藏的textarea,并在表单的onsubmit函数中将contenteditable的innerHTML复制到textarea的值。或者,您可以使用ajax/xmlHttpRqeuest更手动地提交这些东西。

function copyContent() { 
    document.getElementById("hiddenTextarea").value = 
     document.getElementById("myContentEditable").innerHTML; 
    return true; 
} 


<form action='whatever' onsubmit='return copyContent()'>... 
+0

看来最好使用'innerText',否则你会把所有不可见的标记放到textarea中。 – 2017-03-10 19:24:41

+0

就是这一点。你需要所有的标记,为什么你会使用contentEditable?记住textarea是隐藏的,它只是用来保存内容发送到服务器之前。 – rob 2017-03-10 23:00:13

1

如果使用jQuery的,你可以用。点击()事件中使用所提交的内容(即“保存”或“提交” ...)

在你点击功能将其发布到服务器端脚本一个ajax“post”将它插入到你的数据库中。

Example

+2

您的链接已死亡。如果你能以某种方式挽回该链接后面的内容并在你的文章中进行编辑,那就太棒了。如果没有,请删除链接并编辑您的答案。 – rene 2016-06-11 08:30:30

0

是否需要进行标准格式提交?如果你不能或不想使用带有输入的表单,你可以尝试AJAX(XMLHttpRequest + FormData),通过它你可以执行异步请求并更好地控制响应的显示方式。

如果你想要它更简单,试试jQuery的$.ajax函数(也$.get$.post)。它使用简单的JS对象发送数据。

+0

使用FormData的XHR示例:https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects – 2017-10-10 20:19:50