如何在回发后保留表单数据并动态添加dom元素?

时间:2012-09-13 14:15:10

标签: jquery dom dynamic postback

我使用以下代码通过简单地复制父div来动态添加或删除jQuery的输入字段:

$(document).ready(function () {
    $('#btnAdd').click(function () {
        var num = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
        var newNum = new Number(num + 1);      // the numeric ID of the new input field being added

        // create the new element via clone(), and manipulate it's ID using newNum value
        var newElem = $('#input' + num).clone().attr('id', 'input' + newNum);

        // manipulate the name/id values of the input inside the new element
        newElem.children(':first').attr('id', 'author' + newNum).attr('name', 'author' + newNum).attr('value', 'enter a name');

        // insert the new element after the last "duplicatable" input field
        $('#input' + num).after(newElem);

        // enable the "remove" button
        $('#btnDel').attr('disabled', '');

        // business rule: you can only add 5 names
        if (newNum == 5)
            $('#btnAdd').attr('disabled', 'disabled');
    });

    $('#btnDel').click(function () {
        var num = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
        $('#input' + num).remove();     // remove the last element

        // enable the "add" button
        $('#btnAdd').attr('disabled', '');

        // if only one element remains, disable the "remove" button
        if (num - 1 == 1)
            $('#btnDel').attr('disabled', 'disabled');
    });

    $('#btnDel').attr('disabled', 'disabled');
});

现在基本上我想要做的是,只要填写了最多六个输入字段之一(onchange event?),它的值就会自动保存在隐藏的输入字段中。

每个输入字段都会发生这种情况。价值观应该用';'分隔并且根据隐藏输入元素中的值的数量,它应该 - 在回发之后 - 使用上面的clone()函数在dom中添加确切数量的输入字段,并将值重新填入。

因为在每次回发之后(例如,如果没有填写所有必填字段),它不会自动添加(通过jQuery)添加的输入字段,这当然是有道理的....

如果有一种更简单的方法可以做到这一点,我很乐意听到如何,否则我会感激任何帮助,因为我无能为力,尤其是在分离价值观时。

[编辑]

我忘了提到的是,我使用c#.net,隐藏的输入字段使用 runat =“server”属性。

[编辑2]

其他信息:我在网络表单中有这个。使用此表单,您可以在网站上保存“项目”(数据存储在数据库中)。这些项目/文章可以有多个(最多6个)作者,这就是jQuery进来的时候......用户最多可以添加6个作者,并且在页面加载后由用户动态添加到dom中,在将表单发送(回发)到服务器后,它们不会自动添加。所以我需要存储这些输入字段的值,彼此分开以便在回发后仍然具有值,而且还要添加用户定义的作者输入字段数量。我希望这或多或少地清楚我想要做什么?

提前致谢!

0 个答案:

没有答案
相关问题