【问题标题】:Jquery store form inputs in variable on rewrite to doc they have their original valuesJquery在将表单输入重写为doc时将它们存储在变量中,它们具有原始值
【发布时间】:2010-12-07 01:58:06
【问题描述】:

我正在使用 jQuery 为印刷店构建模板表单。用户可以填写表格并单击“预览”按钮。此时,我将表单存储在一个变量中,并使用 replaceWith() 重写文本输入,以将输入从表格单元格中交换出来,并将其替换为它的值。 此时我会显示一个“编辑更多”按钮,以防他们想重新考虑他们的输入。 所以,...然后我将存储变量中的 html 写回表单,但令人惊讶的是,文本输入值是用户输入之前的原始默认值。 这是一个相当复杂的项目。我讨厌发布代码,因为我觉得这只会使讨论复杂化。我希望有人已经有过这种经历,所以知道发生了什么! :-) 谢谢大家。

【问题讨论】:

  • 你的意思是文本框上的历史值???
  • 您如何将“表单存储在变量中”?
  • @gov 我对您对历史的评论很感兴趣。我认为历史只有适用于浏览器导航的变量和方法。你能解释一下吗?
  • @Emmet:我只是存储了包含 div 的 html() 。我有点惊讶,需要一些实时启动才能不反映输入及其输入的值。

标签: jquery forms input replacewith


【解决方案1】:

如果我正确理解您的要求,我会使用 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>

附带说明一下,发布一些代码通常会有所帮助,因为它可以让每个人更好地了解您正在尝试做什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    相关资源
    最近更新 更多