Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   связь select с checkbox (https://javascript.ru/forum/jquery/69930-svyaz-select-s-checkbox.html)

AlexSergeev1990 28.07.2017 14:03

связь select с checkbox
 
Всем привет! Через изменение <select> связал с ajax получением результата ответа в формате json.
я получаю массива формате
<select>
  <option value>Пакет 1</option>
  <option value>Пакет 2</option>
</select>

При выборе Пакет 1
[{"id":"1", "predmet":"флешка"},{"id":"2", "predmet":"дискета"},{"id":"2", "predmet":"дисковод"}]

При выборе Пакет 2
[{"id":"1", "predmet":"флешка"},{"id":"2", "predmet:"дискета"}]

и у меня есть группа checkboxov
<input type="checkbox" id='флешка'/>Флешка
<input type="checkbox" id='дискета'/>дискета
<input type="checkbox" id='Дисковод'/>дисковод

Соответсвенно при каждом выборе надо чтобы выбирались только те которые есть в массиве.У меня выбирает
но при выборе Пакет 2 checkbox Дисковод так же остается отмеченным.
вод код ajax при success:
var asd=JSON.parse(data);
             for (var i = 0; i < asd.length; i++) {
                 var paket=asd[i].predmet;
                        if($("#"+paket).length) {
                           $("#"+paket).attr("checked",true);
                        }else {
                     
                       //$("input:checkbox").removeAttr("checked");
                        }
                  }

Как сделать чтобы при каждом выборе селект отмечались тока те checbox которые есть в массиве.....
а не просто шло добавлеие
т.е. при выборе пакета 1 он отмечает все три при выборе пакета 2 также все остаеться отмеченным хотя надо отметить только 2

рони 28.07.2017 15:19

AlexSergeev1990,
перед циклом сбросить все, в цикле только установка.

рони 28.07.2017 15:29

Цитата:

Сообщение от AlexSergeev1990
id='Дисковод'

Цитата:

Сообщение от AlexSergeev1990
"predmet":"дисковод"

:-?

рони 28.07.2017 15:31

AlexSergeev1990,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
data = '[{"id":"1", "predmet":"флешка"},{"id":"2", "predmet":"дискета"},{"id":"2", "predmet":"дисковод"}]'
var asd=JSON.parse(data);
$(".check").prop({checked: false});
asd.forEach(function(el) {
    el = document.querySelector("#"+el.predmet);
    el && el.checked = true
});
});
  </script>
</head>

<body>

<input type="checkbox" id='флешка'/ class="check" >Флешка
<input type="checkbox" id='дискета' class="check"/>дискета
<input type="checkbox" id='дисковод' class="check"/>дисковод

</body>
</html>

AlexSergeev1990 28.07.2017 15:47

Спасибо тебе большое!!!!))))
 
:thanks: :) :agree: [quote=рони;460003]AlexSergeev1990,
Даже не представляешь что только не перепробовал) То что нужно)
огроменное спасибо!!!)


Часовой пояс GMT +3, время: 13:35.