Подтвердить что ты не робот

Можно ли передать div с contenteditable = true через форму?

Может ли <div contenteditable="true"><a href="page.html">Some</a> Text</div> использоваться вместо texarea, а затем каким-то образом передать форму прогиба?

В идеале без JS

4b9b3361

Ответ 1

Используя 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.

Ответ 2

попробуйте этот

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)

Ответ 3

Вы можете лучше использовать:

<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 дает значение "текст" .

Это полезно, если вы хотите подсчитать символы.