Может ли <div contenteditable="true"><a href="page.html">Some</a> Text</div>
использоваться вместо texarea, а затем каким-то образом передать форму прогиба?
В идеале без JS
Может ли <div contenteditable="true"><a href="page.html">Some</a> Text</div>
использоваться вместо texarea, а затем каким-то образом передать форму прогиба?
В идеале без JS
Используя HTML5, как я могу использовать контентные поля в отправке формы?
Content Editable не работает как элемент формы. Только javascript может позволить ему работать.
EDIT: В ответ на ваш комментарий... Это должно сработать.
<script type="text/javascript">
function getContent(){
document.getElementById("my-textarea").value = document.getElementById("my-content").innerHTML;
}
</script>
<div id="my-content" contenteditable="true"><a href="page.html">Some</a> Text</div>
<form id="form" action="some-page.php" onsubmit="return getContent()">
<textarea id="my-textarea" style="display:none"></textarea>
<input type="submit" />
</form>
Я тестировал и проверял, что это работает в FF и IE9.
попробуйте этот
document.getElementById('formtextarea').value=document.getElementById('editable_div').innerHTML;
полный пример: -
<script type="text/javascript">
function getContent(){
var div_val=document.getElementById("editablediv").innerHTML;
document.getElementById("formtextarea").value =div_val;
if(div_val==''){
//alert("option alert or show error message")
return false;
//empty form will not be submit. You can also alert this message like this.
}
}</script>
`
<div id="editablediv" contenteditable="true">
<a href="page.html">Some</a> Text</div>
<form id="form" action="action.php" onsubmit="return getContent()">
<textarea id="formtextarea" style="display:none"></textarea>
<input type="submit" />
</form>
`
вместо этого вы можете использовать JQuery (если есть ограничение на использование JQuery для автоматического изменения размера текстового поля или любого текстового редактора WYSIWYG)
Вы можете лучше использовать:
<script type="text/javascript">
function getContent(){
document.getElementById("my-textarea").value = document.getElementById("my-content").innerText;
}
</script>
ПРИМЕЧАНИЕ: я изменил .innerHTML
на innerText
. Таким образом, вы не получаете HTML-элементы и текст, а только текст.
Пример: я отправил "текст" , innerHTML
дает значение: "\ r\n text". Он отфильтровывает "текст" , но дольше 4 символов.
innerText
дает значение "текст" .
Это полезно, если вы хотите подсчитать символы.