2017-01-27 3 views
0

У меня есть этот код ниже, чтобы установить флажок в моем DataTable и получить IDs и сохранить его в массиве. Для примера у меня есть 2 отдельно DataTables Первый для президента, а второй - для сенаторов.Ограничить проверку, checkbox in bootstrap dataTable

Мы знаем, что мы можем голосовать только 1 в президенте, а для сенаторов мы можем выбирать многие.

Моя проблема здесь. Я могу проверить, сколько флажков в DataTables. Как ограничить отмеченные флажки ?.

Все еще учится в бутстрапе здесь.

JS код

var dataTablestest = $("#tbltest").DataTable({ 
    responsive: true, 
    processing: true, 
    info: true, 
    search: true, 
    stateSave: true, 
    order: [[1, "asc"], [2, "asc"]], 
    lengthMenu: [[50, 100, 200, -1], [50, 100, 200, "All"]], 
    ajax: { "url": "/Voting/LoadTableTest" }, 

    columns: 
    [ 
     { data: "testID", title: "", visible: false, searchable: false }, 
     { data: "Fullname", title: "FullName", sClass: "alignRight" }, 
     { data: "Position", title: "Position", sClass: "alignRight" }, 
     { data: "party", title: "Party", sClass: "alignRight" }, 
     { data: "ActionMenu", title: "Click to vote", searchable: false, orderable: false, sClass: "alignCenter", 
      "mRender": function (data) { 
       return '<center><label><input class="checkId" type="checkbox" id="chkvote_' + data + '" value=""/></label></center>'; 
      } 
     } 
    ] 
}); 
var arrayIds = []; 
$('#tbltest tbody').on('click', 'tr', function (e) { 
    if ($(e.target).is(".checkId")) { 
     var Ids = dataTablestest.row(this).data().testID; 
     arrayIds.push(Ids); 
     return 
    } 
}); 

EDIT

Я нашел ответ, но есть проблема с этим. Мой счетчик продолжает увеличиваться каждый раз, когда я устанавливаю флажок из моей таблицы данных.

$('#tbltest tbody').on('click', 'tr', function (e) { 
    if ($(e.target).is(".checkId")) { 
     if ($(e.target).is(":checked") == true) { 
      CheckCount = CheckCount + 1; 
      var Ids = dataTablestest.row(this).data().testID; 
      if (CheckCount > 1) { 
       return false; 
      } 
      arrayIds.push(Ids); 
      return 
     } 
     else { 
      CheckCount = parseInt(CheckCount) - parseInt(1); 
     } 
    } 
}); 

ответ

0

Я использую этот код ниже .. Спасибо всем, кто просматривает мою тему.

var arrayIds = []; 
$('#tbltest tbody').on('click', 'tr', function (e) { 
    if ($(e.target).is(".checkId")) { 
     var Ids = dataTablestest.row(this).data().testID; 
     if ($(e.target).is(":checked") == true) { 
      var lenArray = arrayIds.length; 
      if (lenArray < 1) { 
       arrayIds.push(Ids); 
      } else { 
       return false; 
      } 
     } 
     else { 
      for (var i = arrayIds.length - 1; i >= 0; i--) { 
       if (arrayIds[i] === Ids) { 
        arrayIds.splice(i, 1); 
       } 
      } 
     } 
    } 
    return; 
}); 
Смежные вопросы