Как сравнить input с другим select?

Имеется динамически созданный список li.
В нем имеются скрытые input.

При нажатии на кнопку добавить у меня в список li добавляются выбранные select, мне нужно сделать проверку перед добавлением на наличие такой комбинации.

Например, если выбрать категория 4 и подкатегория 401 кликнуть добавить, то выскочит alert
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
neuotq
@neuotq
Прокрастинация
Тут конечно много вариантов, лучше в целом переписать на чем-нить реакт подобном и сравнивать по данным перед рендером. Но если ваш пример, то можно использовать те же dataset поля чтобы проверять что уже добавлен такой.
В моем примере я проверяю просто категорию, вы уже сами добавите нужные вам доп проверки
/* Добавляем в li dataset поле category-id в котором будем хранить категорию
По желанию добавляешь и другие
а если подкатегории входят в категорию и каждая имеет только одного родителя то можно обойтись одной подкатегорией
*/
$("#categoryAll").append(
    `<li class="flex group-form-elements" data-category-id="${cat1}">
        <div>
          <input type="hidden" name="incidentmain[]" value="${cat1}" class="incedentSelected">
          <span>${txt1}</span>
        </div>
        <div>
          <input type="hidden" name="incidentsubcategory[]"  value="${cat2}" class="subcatSelected">
          <span>${txt2}</span>
        </div>
        <div>
          <input type="hidden" name="IncidentDetection[]" value="${cat3}">
          <span>${txt3}</span>
        </div>
        <div>
          <span class="delCategory button delete">Удалить</span>
        </div>
     </li>`
  );

Ну и в самом коде в проверках ваших делаем запрос, если такой элемент находится обрубаем исполнение
if ( document.querySelector(`[data-category-id="${cat1}"]`)) {
    alert("Такую категорию уже добавляли");
    return false;
  }

Весь пример, дальше дорабатывайте под себя:
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект