-1

次のリンクのように jQuery クローンを実装しました。

http://jsfiddle.net/sunalive/gqQnJ/5/

ここで、行が追加 (複製) されるたびに、シーケンス番号 (行番号) が自動的に生成されるようにします。また、(DelRow ボタンを使用して) 行が削除された場合は、全体の番号を付け直す必要があります (行を途中から削除したときにシーケンスに番号が欠落しないようにするため)。番号は lineNo フィールドに表示する必要があります。

どうすればこれを達成できるのでしょうか。

また、すべての行が誤って削除されないように、最初の行からのみ「DelRow」ボタンを非表示にする必要があり、少なくとも 1 つの行が常に存在します (ただし、これは複製されている行であり、すべての行に表示するボタンが必要です)。他のクローン行)。

お時間をいただきありがとうございます。

更新: Charles と Kei の親切な助けに感謝します。私が望むものにたどり着くには、両方のソリューションを融合させる必要がありました。更新されたソリューションは以下に掲載されています。

http://jsfiddle.net/sunalive/gqQnJ/13/

4

2 に答える 2

0

http://jsfiddle.net/gqQnJ/10/ただし、id lineNoは重複したIDであるため、htmlは無効であると想定します。したがって、入力を選択または識別するために別の方法を使用する必要があると思います。

于 2012-08-13T15:24:03.163 に答える
0

デモ

$(document).ready(function() {
    var autonumber = function() {
        $("tr.gridrow").each(function(i) {
            $(this).find("input[name='lineNo']").val(i + 1);
        });
    };
    autonumber();

    var emptyItems = $(".gridrow:first").clone();
    $(".addrow").live('click', function(e) {
        e.preventDefault();
        $(this).parents('.gridcontainer').append(emptyItems.clone());
        autonumber();
    });

    $(".delrow").live('click', function(e) {
        e.preventDefault();
        $(this).parents('.gridrow').remove();
        autonumber();
    });
})

同じ ID のタグを複製していないことに注意してください。代わりにクラスを使用することをお勧めします。

于 2012-08-13T15:25:19.723 に答える