1

大学の授業に登録できるアプリを開発しています。彼らは、登録タイプ、コースタイプ、バッチ、およびその科目を選択します。コースの種類とバッチを選択するときに、科目をテーブルに置いています。そのため、追加した後、選択された科目テーブルに追加された科目を選択できます。私のコードは、彼らが初めて作業しているときに機能します。しかし突然、それらは登録タイプ、コースタイプ、バッチに変更され、科目がリストダウンされます。ただし、被験者を選択すると、選択した被験者のテーブルに2つのテーブルtrが追加されます。何故ですか ?

Jクエリ

$("#subjectsTable").on('change', '.selectedSubjects', function (event) {
event.stopPropagation();
    var selectedReg = $('#CouserFinder option:selected').val();
    var selectedCouse = $('#CourseSet option:selected').val();
    var selectedBatch = $('#alreadyBatchSorting option:selected').val();

    if(selectedBatch != "Select Your Batch"){
    var shouldChecked = $("#CT_No_Of_SubjectsCount").val();

  var bol = $(".selectedSubjects:checkbox:checked").length >= shouldChecked;     
  $(".selectedSubjects:checkbox").not(":checked").attr("disabled",bol);

    if ($(this).is(":checked")) {
        var indexChecked = $(this).closest("tr").attr("data-index");
        alert(indexChecked);
        var selectedSCode = $(this).closest("tr").find(".selectedSCode").text();
        $("#selectesSubjectsRecodes tr:last").after("<tr data-index=" + indexChecked + "><td>" + selectedReg + "</td><td>" + selectedCouse + "</td><td>" + selectedSCode + "</td><td>" + selectedBatch + "</td></tr>");


    } else {
        var indexAdded = $(this).closest("tr").attr("data-index");
        var findRow = $("#selectesSubjectsRecodes tr[data-index='" + indexAdded + "']");
        findRow.remove();

    }
}
else{
alert("Warning!: Select Your Batch");
$(this).prop('checked', false)
}
});

HTML

<tr class="success" data-index="10">
<td>
<input class="selectedSubjects" type="checkbox" name="selectedSubjects">
</td>
<td class="selectedSCode">BCS-DIP-UID</td>
<td class="selectedSName">UID</td>
</tr>

選択された件名コード (DOM から取得)

<tr data-index="10">
<td>BCS-DIP-S3</td>
<td>BCS-DIP</td>
<td>BCS-DIP-UID</td>
<td>BCS-DIP-APR/2014-002</td>
</tr>
<tr data-index="10">
<td>BCS-DIP-S3</td>
<td>BCS-DIP</td>
<td>BCS-DIP-UID</td>
<td>BCS-DIP-APR/2014-002</td>
</tr>

スクリーンショット

ここに画像の説明を入力

ご覧のとおり、2 つの trs が追加されます。なぜですか?

4

1 に答える 1

1

You are binding a new event handler to $("#subjectsTable .selectedSubjects") every time you call that function. The problem will stem from the fact that your javascript is in a function which is being called multiple times.

于 2013-09-07T06:10:07.260 に答える