-1

我有以下函数,可以将输入添加到 DOM,并根据屏幕上的最后一个为它们提供顺序 id。然而,它似乎只计算了预编辑 DOM 中的实际最后一个......因此,例如,如果我默认有 5 个输入,它将给出所有新闻和 6 的 id 而不是 6、7、8 等。如何我要计算添加的吗?

addInput: function () {

    // Get the last input num
    $lastNum = $('.inputs input:last-child').length;

    // Num is last input plus 1
    $num = $lastNum + 1;

    // Input HTML
    $input = '<input type="text" name="iam' + $num + '" id="iam' + $num +'" />';

    // Only allow 10 inputs to be added
    if ( $('.inputs input').length > 9 ) {
        alert('You can only have a maximum of 10');
        return false;
    }

    // Append the input to the inputs list
    $('.inputs').append($input);

},
4

2 回答 2

6

$('.inputs input:last-child').length总会回来1的,因为只有最后一个孩子。改为使用$('.inputs input').length

于 2012-04-20T09:28:52.553 回答
0

几年前我在我的一个项目中使用了这个基本逻辑。

放置一个隐藏字段,其中包含可用输入的计数。

初始阶段隐藏字段 = 0。

然后如果我添加 3 个新输入,我的隐藏字段将具有 value = 3

我将根据要求将三个输入的详细信息保存在我的数据库中。

当我再次打开页面时,默认情况下我将不得不加载三个输入。所以我也可以在隐藏字段中传递相同的值。

我添加新输入的函数将使用隐藏字段值来增加输入...

编辑:

在 jQuery 中,您必须有一个 Parent 块,其中包含所有输入。

因此,您还可以在父 div 中找到输入。

$(".inputs input:[type=text]").length.

请参考这个小提琴

于 2012-04-20T09:32:10.303 回答