私は<tr>
をクローンしなければなりません。以下のようなチェックボックスのリストがあります。チェックボックスのリストを新しい行に追加して、チェックボックスをクリックして値を表示してください。field_results
まだクローンではない最初のテキストボックスにのみ表示されます。 どのように新しいtrを追加したら、どのtrのチェックボックスのリストをクリックすると、同じtrのクリックの値が表示されますか?jQueryでtrとcheckboxイベントをクローズ
$("#add-new").on("click", function() {
$tr = $(this).closest("tr").next().clone(true);
$tr.insertAfter($(this).closest("tr"));
});
$(document).ready(function() {
$checks = $('#mych_box :checkbox');
$checks.on('change', function() {
var string = $checks.filter(":checked").map(function (i, v) {
return this.value;
}).get().join(",");
console.log(string);
$('#field_results').val(string);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
<td>
<button type="button" id="add-new">Add New</button>
</td>
</tr>
<tr>
<td>
<input type="text" id="field_results" name="field_results[]"/><br>
<div class="multiselect" style="height: 100px;width: auto;" id="mych_box">
<label>
<input type="checkbox" id="virt_software_chb1" name="virt_software[]" value="White"/>White
<input type="checkbox" id="virt_software_chb2" name="virt_software[]" value="Red"/>Red
<input type="checkbox" id="virt_software_chb3" name="virt_software[]" value="Blue"/>Blue
</label>
</div>
</td>
</tr>
族元素に
class
の代わりid
を使用するclone
に使用true
上で定義されているようにあなたの 'clone()'メソッドの引数。これは、データが引き継がれない理由を簡単に推測したものです。 –@CarEEdwardsあなたの答えを教えてください –
1st:idは一意のuse classでなければなりません(これはidを複製すると同じidを複製し、あなたのコードは最初のidで動作します)。 2回目:イベント$( 'テーブル')を委譲する必要があります。 '変更'、$チェック、関数(){' –