/* Добавляем в 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;
}
input:required
и select:required
можно выбрать все инпуты с атрибутом required
.radio
достаточно указать required
у первого элемента.select
опции-затычке надо указать value=""
и добавить атрибуты disabled hidden selected
, чтобы такая опция не считалась заполнением.element.validity.valueMissing
:true
означает пустоту обязательного поля. Когда не все поля валидны, то preventDefault()
событию предотвратит переключение таба.<div id="tab_1">
...
<button id="tab_1_submit">Перейти к табу 2</button>
</div>
<div id="tab_2">
...
<button id="tab_2_submit">Перейти к табу 3</button>
</div>
const requiredFields = document.getElementById('tab_1').querySelectorAll('[required]')
const requiredFields = $('#tab_1 [required]')
Получается, что из radio он находит только первый пол мужской, а элемент женский не читает, хотя он тоже считается required.
Нужно, чтобы он проверял любой пол.