捕获表单中的所有HTML,包括没有帖子的文本字段值

时间:2011-01-06 15:14:37

标签: jquery html forms

我正在使用表单生成器界面,以便用户添加各种输入字段,以及他们添加到类别和子类别的文本区域。

我已经制定了Javascript(JQuery)来生成嵌套的类别和输入字段供用户填写。

我需要捕获这个精确生成的HTML,包括输入字段中的值,这样当他们返回编辑此表单时,就像他们上次离开时​​一样。

我曾尝试使用$(“#myForm”)。html()并将其保存到保存到数据库的隐藏文本区域。这很好,除了.html()不捕获输入字段中输入的内容。

稍后,我需要解析这个生成的HTML,过滤掉所有的添加/删除按钮,最后得到嵌套的类别和表单字段值。

我的想法是绑定所有字段上的keyup事件以更新自己的值字段,然后.html()可以捕获它吗?有更好的方法吗?

谢谢!

4 个答案:

答案 0 :(得分:2)

如果您在解析生成的html以重新生成表单时遇到麻烦,那么使用jQuery的内置表单序列化函数存储表单值可能会更容易:

http://api.jquery.com/serialize/

答案 1 :(得分:1)

我不知道你是否正在寻找。 我有类似的问题,经过一些研究,我发现这可以解决我的问题(不太高效,但这已经足够了):

        $('#form input:text').each(
            function(){
                $(this).attr('value', $(this).val());
            });

        $('#form input:radio').each(
            function(){
                if($(this).is(':checked')) {
                    $(this).attr('checked', 'checked');
                }
                else{
                    $(this).removeAttr('checked');
                }
            });
        // I only give sample for input text and input radio
        var html = $("#form ").html();
        console.log (html);

答案 2 :(得分:0)

您是否可以将这些内容存储到数组的内容中并将其存储在数据库中,然后将指针存储在Cookie,Session中,或者在用户登录时将其返回?

您可以使用上面提到的方法填充生成的HTML,但是您必须迭代字段并将当前输入的数据值写入要写回数据库的数组。

答案 3 :(得分:0)

为什么要将表单的HTML存储在数据库中? 如果表单发生更改(新字段作为发布的一部分添加/删除)会怎样? 而是使用jQuery.serialize存储字段值,然后根据存储的json字符串填充表单上的字段。