Скопируйте содержимое тегов div, включая html, в скрытый ввод

0

надеюсь простой вопрос,

То, что я хочу сделать, - захватить содержимое моего div, включая теги html любых дочерних элементов, и вставить его в скрытый ввод в форме каждый раз, когда я нажимаю клавишу в другом поле ввода

например, если мой div:

<div><p>Hello</p></div>

Я хочу скопировать:

<p>Hello</p>

Как строка

Я пытался:

$(document).ready(function(){
    $('#textarea').keyup(function() {
        $('#hidden-input').html($('#div'));
    });
});

Единственная проблема - содержимое моего скрытого ввода содержит div и аргументы div, например, это выглядит так:

<input type="hidden" id="hidden-input" name="foo" value="bar">
    <div> (DIV CONTENTS) </div>
</input>

Я только хочу (DIV СОДЕРЖАНИЕ) из вышеизложенного, нет div. Как это:

<input type="hidden" id="hidden-input" name="foo" value="bar">
    (DIV CONTENTS)
</input> 
  • 1
    Myaaan это HTML20 ??? :) .. из того, что я знаю (HTML5), у вас не может быть div внутри входного тега .. входной тег является встроенным тегом, поэтому должен быть похож на <input /> .. там есть конечный тег на входе ..
  • 0
    </input> действительно? developer.mozilla.org/en-US/docs/Web/HTML/Element/Input
Показать ещё 1 комментарий
Теги:
forms

3 ответа

2
Лучший ответ

просто выполните:

 $(document).ready(function(){
     $('#textarea').keyup(function() {
         $('#hidden-input').html($('#div').html());
     });
 });
  • 0
    действительно .. вы дали ответ на это .. вы заметили тег ввода ?? :)
  • 0
    Ааа, ты добрался до этого до меня. :П
0

</input> - недопустимый тег конца ввода. Входы - это теги, содержащие теги, поэтому нет необходимости </ поэтому вы можете понять, что вход не содержит HTML-содержимого, а value=""

поэтому я предлагаю вам использовать скрытый элемент <textarea id="hidden-input"></textarea>

$(function(){ // DOM ready 
    $('#textarea').keyup(function() {
        var copy = $('#div').html();
        $('#hidden-input').html( copy );
    });
});


Я не понимаю из вашего вопроса:

каждый раз, когда я нажимаю клавишу в другом поле ввода

у вас есть несколько полей ввода, чем не использовать ID в $('#textarea').keyup(
а скорее общее имя класса.

Вот демонстрация именно того, о котором вы просили (или, по крайней мере, как вы это объяснили)

LIVE DEMO

что не имеет никакого смысла,

поэтому я предлагаю вам переформулировать ваш вопрос.

0

Вопрос нелогичен. Мы можем указать значение для поля ввода, а функция val используется для этого

val(): этот метод обычно используется для установки значений полей формы. http://api.jquery.com/val/

$(document).ready(function(){
    $('#textarea').keyup(function() {
        $('#hidden-input').val($('div').html());
    })
});
  • 0
    Это установка value ввода. Он хочет установить внутренний текст ввода (что в любом случае не логично, но все же.)
  • 0
    Мы можем дать значение для формирования полей ввода. Функция Html предназначена для таких элементов, как div или span.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню