-1

入力をDOMに追加し、画面上の最後のIDに基づいて連続したIDを与える次の関数があります。ただし、事前に編集された DOM から実際の最後の 1 つだけをカウントするようです...たとえば、デフォルトで 5 つの入力がある場合、すべてのニュースと id が 6,7,8 などではなく 6 になります。追加されたものを数えますか?

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は 1 つしかないため、常に戻ります。代わりに使用してください。$('.inputs input').length

于 2012-04-20T09:28:52.553 に答える
0

これには、数年前に私のプロジェクトの 1 つで使用した基本的なロジックがあります。

使用可能な入力の数を含む隠しフィールドを配置します。

初期段階では非表示フィールド = 0。

次に、3 つの新しい入力を追加すると、隠しフィールドの値は 3 になります。

要件に従って、3 つの入力の詳細をデータベースに保存します。

ページを再度開くと、デフォルトで 3 つの入力をロードする必要があります。そのため、隠しフィールドにも同じ値を渡すことができます。

新しい入力を追加する私の関数は、隠しフィールド値を使用して入力を増やします...

編集:

jQueryでは、すべての入力を含む親ブロックが必要です。

したがって、親 div で入力を見つけることもできます。

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

このフィドルを参照してください

于 2012-04-20T09:32:10.303 に答える