JQuery хранит входные данные формы в переменной при перезаписи, чтобы они имели свои исходные значения - PullRequest
0 голосов
/ 06 декабря 2010

Я работаю с jQuery, собирая форму шаблона для типографии.Пользователи могут заполнить форму и нажать кнопку «Просмотр».На этом этапе я сохраняю форму в переменной и перезаписываю текстовые входы, используя replaceWith (), чтобы заменить ввод из ячейки таблицы и заменить его значением '.На этом этапе я показываю кнопку «Редактировать больше» на тот случай, если они захотят пересмотреть свой ввод.Итак, ... Затем я записываю html в сохраненную переменную обратно в форму, но удивительно, что значения ввода текста являются исходными значениями по умолчанию до ввода пользователя.Это довольно сложный проект.Я ненавижу размещать код, потому что чувствую, что это только усложнит обсуждение.Я надеюсь, что кто-то уже имел этот опыт, поэтому знает, что случилось!:-) Спасибо всем.

1 Ответ

0 голосов
/ 06 декабря 2010

Если я правильно понимаю ваши требования, я переписал бы часть вашего кода, используя метод jQuery .detach().Он позволяет вам хранить элементы, которые вы обычно удаляете, в переменную, чтобы потом их можно было снова вставить обратно в DOM.

Вы по-прежнему сможете взаимодействовать с отсоединенными элементами как обычноjQuery объекты, но вы не увидите их на странице.

Вот пример:

<script>
$(function(){

    var detachedInput = '';
    var detachedBtn = '';

    $('#preview').click(function(){
        // store elements for later use
        detachedInput = $('#input').detach();
        detachedBtn = $(this).detach();

        // whatever you're trying to do with the output
        //...this is just an example, and not a very good one at that
        $('body').html($(detachedInput).val());
        $('<button>Edit</button>').appendTo('body')
            .click(function(){
                $('body').empty()
                    .append(detachedInput)
                    .append(detachedBtn);
            });
    });

});
</script>

<input id='input' />
<button id='preview'>Preview</button>

Как примечание, публикация некоторого кода обычно помогает, так как это дает всем лучшеепредставление о том, что вы пытаетесь сделать.

...