0

jquery でinput[type=radio]に問題があります。

divの内容をコピーする必要がありますが、ラジオオブジェクトのデフォルトのチェックを維持します

$('#copy').click(function() {
    var copy = '<div id="source">';
    copy += $('#source').html();
    copy += '</div>';
    $(this).after(copy);
});

http://jsfiddle.net/R7EFb/

私を助けてください!

4

2 に答える 2

0

ID、名前、属性がある場合は複製せずに複製する必要があります。ここで作業フィドルを確認してください。

globalVarCount がこれらを区別する変数であることを確認してください。コードは次のとおりです::

var globalVarCount= 0;
$('#copy').click(function() {
    var copy;
    $clone = $("#source").clone();
    $clone.attr("id",$clone.attr("id")+1)
    $clone.children().each(function(){
        $(this).attr("id",$(this).attr("id")+1);
        $(this).attr("name",$(this).attr("name")+1);
        $(this).attr("for",$(this).attr("for")+1);
    });
    $(this).after($clone);
});
于 2013-08-19T14:13:42.953 に答える
0

コピーしたラジオ ボタン セットとラベルには、異なる名前属性と ID を使用する必要があります。

JSFiddle のを次に示します。

var copyCount = 1;

$("#copy").click(function() {
    $("#source").clone().attr("id", "source" + copyCount).appendTo("body");
    // Get original radio elements
    $radio1 = $("#source" + copyCount + " #radio1");
    $radio2 = $("#source" + copyCount + " #radio2");
    $radio3 = $("#source" + copyCount + " #radio3");
    $radio4 = $("#source" + copyCount + " #radio4");

    // Change attributes (name and id)
    $radio1.attr("id", "radio" + (copyCount * 4 + 1)).attr("name", "check" + (copyCount * 2 + 1)).next().attr("for", "radio" + (copyCount * 4 + 1));
    $radio2.attr("id", "radio" + (copyCount * 4 + 2)).attr("name", "check" + (copyCount * 2 + 1)).next().attr("for", "radio" + (copyCount * 4 + 2));
    $radio3.attr("id", "radio" + (copyCount * 4 + 3)).attr("name", "check" + (copyCount * 2 + 2)).next().attr("for", "radio" + (copyCount * 4 + 3));
    $radio4.attr("id", "radio" + (copyCount * 4 + 4)).attr("name", "check" + (copyCount * 2 + 2)).next().attr("for", "radio" + (copyCount * 4 + 4));

    // Restore selected option in original radio set
    if ($radio1.attr("checked") !== undefined) $("#source #radio1").click();
    if ($radio2.attr("checked") !== undefined) $("#source #radio2").click();
    if ($radio3.attr("checked") !== undefined) $("#source #radio3").click();
    if ($radio4.attr("checked") !== undefined) $("#source #radio4").click();

    copyCount++;
});
于 2013-08-19T13:45:34.040 に答える