Заполняющий флажок; ы результатом вызова Ajax

#jquery

#jquery

Вопрос:

У меня есть форма, которая открывается для редактирования. Форма заполняется на основе результатов вызова Ajax. В форме есть шесть флажков, которые я пытаюсь заполнить как «отмеченные» или «непроверенные».

Флажок-ы:

 <input class="days" type="checkbox" name="day0" id="Day0" value="0">
<input class="days" type="checkbox" name="day1" id="Day1" value="1">
<input class="days" type="checkbox" name="day2" id="Day2" value="2">
<input class="days" type="checkbox" name="day3" id="Day3" value="3">
<input class="days" type="checkbox" name="day4" id="Day4" value="4">
<input class="days" type="checkbox" name="day5" id="Day5" value="5">
<input class="days" type="checkbox" name="day6" id="Day6" value="6">
<input class="all" type="checkbox" name="Everyday" id="Everyday">
  

Что мне требуется, так это если результат «result[20]» равен 0 (это номер дня), чтобы установить флажок (true) и так далее для всех флажков

Результатом вызова Ajax является:

 var day0 = result[20];
if(day0 == '0'){
   $('#Day0').prop('checked', true);
} else {
    $('#Day0').prop('checked', false);
}

var day1 = result[21];
if(day1 == '1'){
   $('#Day1').prop('checked', true);
} else {
   $('#Day1').prop('checked', false);
}

// and so on
  

Заранее большое спасибо за вашу помощь и время.

Комментарии:

1. @Taplar моя ошибка. Я отредактировал код.

Ответ №1:

Выполните цикл над массивом, используя индекс. Значение if else также может быть сокращено. Разрезание массива на элемент 20 позволяет индексу начинаться с 0.

 var result = ["11","April","DS1","Lobby","L","test_1920x1080.png","PNG","01-04-2019","00","00","30-04-2019","23","59","1920","1080","EXBHX","642652","6000","fade","600","","1","","3","","5",""];

result.slice(20).forEach(function(day, index) {
  $('#Day'   index).prop('checked', day amp;amp; day == index);
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="days" type="checkbox" name="day0" id="Day0" value="0">
<input class="days" type="checkbox" name="day1" id="Day1" value="1">
<input class="days" type="checkbox" name="day2" id="Day2" value="2">
<input class="days" type="checkbox" name="day3" id="Day3" value="3">
<input class="days" type="checkbox" name="day4" id="Day4" value="4">
<input class="days" type="checkbox" name="day5" id="Day5" value="5">
<input class="days" type="checkbox" name="day6" id="Day6" value="6">  

Комментарии:

1. привет, все еще не заполняю флажок, и я не получаю никаких ошибок в консоли. Есть идеи?

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

3. Привет, извините за беспокойство, но у меня все еще возникают проблемы. Можете ли вы объяснить, почему мой массив не будет работать. Мой массив: результат var = [«11″,»April»,»DS1″,»Lobby»,»L»,»test_1920x1080.png»,»PNG»,»01-04-2019″,»00″,»00″,»30-04-2019″,»23″,»59″,»1920″,»1080″,»EXBHX»,»642652″,»6000″,»fade»,»600″,»»,»1″,»»,»3″,»»,»5″,»»]

4. @DCJones отредактировал фрагмент, чтобы использовать ваш массив. Он все еще работает во фрагменте. Редактировать: на самом деле пришлось изменить его, поскольку значение массива было не 20, 21, 22 и т.д., А 1, 3, 5