0

入力するフィールド (チェックボックス タイプ) の数が同じである 2 つの異なるビューがあります。

コピーボタンをクリックすると、あるビューから別のビューに値をコピーする必要があります..

動作する私のコードは次のとおりです。

$('button').on('click', function () {
    var firstInputSet = $('#contest_data_updatePeriodicity').find('input'),
        secondInputSet = $('#contest_data_reminderPeriodicity').find('input');
    for (var i = 0; i < firstInputSet.length; i ++) {
        //console.log($(firstInputSet[i]).prop('checked'));
        $(secondInputSet[i]).prop('checked', $(firstInputSet[i]).prop('checked'))
    }
});​

この仕事をするための最良の方法があれば知りたいです。

デモは次のとおりです。

http://jsfiddle.net/D2RLR/2639/

4

2 に答える 2

1

最初の部分を複製できます。

jsfiddle: http://jsfiddle.net/D2RLR/2641/

$('button').on('click', function () {
    $("#second-set").empty();
    $('#contest_data_updatePeriodicity').clone().appendTo("#second-set").attr("id", "contest_data_second")
});​

長所: 何かを追加する場合、2 回追加する必要はありません。

短所: 元の入力と複製された入力が同じ name 属性を共有するため、おそらく "get" 関数を再考する必要があります。治しやすいけど。

于 2012-10-11T15:44:30.453 に答える
0

チェックボックスの種類のみで検索をフィルタリングし、 each メソッドを使用するだけです。

$('button').on('click', function () {
    var firstInputSet = $('#contest_data_updatePeriodicity').find('input:checkbox');
    var secondInputSet = $('#contest_data_reminderPeriodicity').find('input:checkbox');
    secondInputSet.each(function(i) { $(this).prop('checked', $(firstInputSet[i]).prop('checked')) });
});​
于 2012-10-11T15:55:28.683 に答える