#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