1

我使用以下代码通过简单地复制父 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 事件?),它的值应该自动保存在隐藏的输入字段中。

这应该发生在每个输入字段中。值应该用';'分隔 并且根据隐藏输入元素内的值的数量,它应该 - 在回发之后 - 使用上述 clone() 函数在 dom 中添加确切数量的输入字段,并重新填充这些值。

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

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

[编辑]

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

[编辑 2]

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

提前致谢!

4

0 回答 0