2011-06-06 19 views

cevap

32

Bunu bir textarea ya da benzeri yaptığınız gibi bir "standart" form öğesi olarak çalışmayacaktır, javascript öyle ya da kullanmak zorunda. İsterseniz, formunuzda gizli bir textarea yapabilir ve formun onsubmit işlevinde, contenteditable'ın innerHTML'sini textarea değerine kopyalayabilirsiniz. Alternatif olarak, bir şeyler daha el ile göndermek için ajax/xmlHttpRqeuest kullanabilirsiniz.

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


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

'innerText' kullanmak daha iyi görünüyor ya da tüm görünmez işaretlemeyi textarea'ya yerleştirirsiniz. –

+0

Buradaki nokta. Tüm bu işaretlemeye ihtiyacınız var, neden başka bir contentEditable kullanıyorsunuz? Textarea'nın gizlendiğini hatırlayın, içeriği yalnızca sunucuya göndermeden önce tutmak için kullanılır. – rob

1

Eğer Jquery kullanırsanız, kullanarak bir sunucu tarafı komut dosyasına Tıklama işlevi sonrası İçinde (... yani "kaydet" veya "Gönder") bir .click() olayla

içerik göndermek olabilir veritabanınıza eklemek için bir ajax "post".

Example

+2

Bağlantınız kesildi. Bir şekilde bu bağlantının arkasındaki içeriği kurtarır ve yayınınızda düzenleyebilecekseniz harika olur. Eğer değilse lütfen bağlantıyı kaldırın ve cevabınızı şekle dönüştürün. – rene

0

Standart form gönderimine ihtiyaç var mı? Girdilerle bir form kullanmak istemezseniz veya istemiyorsanız, eşzamansız istekleri gerçekleştirebileceğiniz ve yanıtın nasıl ortaya çıktığını daha iyi kontrol edebileceğiniz AJAX (XMLHttpRequest + FormData) deneyebilirsiniz.

Daha da basitleştirmek isterseniz, jQuery'nin $.ajax işlevini (ayrıca $.get ve $.post) deneyin. Basit JS nesneleri kullanarak veri gönderir.

+0

FormData ile çalışan bir XHR örneği: https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects –

İlgili konular