I currently have a filter dropdown containing checkboxes. I have checkboxes for gender and category. I am now trying to make sure that the user will check at least one checkbox each part (gender and category). The problem is I don't know how to check whether the checkbox is empty or not.
Below is the partial form for the filter dropdown:
<form class="" method="GET" action="manage_product.php">
<h6 class="dropdown-header px-0">Gender</h6>
<div class="form-check">
<input class="form-check-input" name="genderFil[]" type="checkbox" value="M" class="genderFil" id="genMale" <?= ($isMale == 1) ? "checked" : ""; ?>>
<label class="form-check-label" for="genMale">Male</label>
</div>
<div class="form-check">
<input class="form-check-input" name="genderFil[]" type="checkbox" value="F" class="genderFil" id="genFemale" <?= ($isFemale == 1) ? "checked" : ""; ?>>
<label class="form-check-label" for="genFemale">Female</label>
</div>
<div class="dropdown-divider"></div>
<h6 class="dropdown-header px-0">Category</h6>
<div class="form-check">
<input class="form-check-input" name="categoryFil[]" type="checkbox" value="1" class="categoryFil" id="catShoes" <?= ($isShoes == 1) ? "checked" : ""; ?>>
<label class="form-check-label" for="catShoes">Shoes</label>
</div>
<div class="form-check">
<input class="form-check-input" name="categoryFil[]" type="checkbox" value="2" class="categoryFil" id="catPants" <?= ($isPants == 1) ? "checked" : ""; ?>>
<label class="form-check-label" for="catPants">Pants</label>
</div>
<div class="form-check">
<input class="form-check-input" name="categoryFil[]" type="checkbox" value="3" class="categoryFil" id="catShirts" <?= ($isShirts == 1) ? "checked" : ""; ?>>
<label class="form-check-label" for="catShirts">Shirts</label>
</div>
<div class="dropdown-divider"></div>
<input type="submit" class="button_primary" name="applyFilter" value="Apply" onclick="checkFilter()">
</form>
Below is the javascript that I tried to code:
function checkFilter()
{
var res = true;
var checkedGender = $('input[class="genderFil"]:checked').length;
if(checkedGender < 1)
{
alert("Please select at least one gender!");
res = false;
}
var checkedCategory = $('input[class="categoryFil"]:checked').length;
if(checkedCategory < 1)
{
alert("Please select at least one category!");
res = false;
}
return res;
}
It is only can be submitted if there is at least one gender and at least one category checked.
How can I check whether the checkbox is empty or not?
input.genderFilorinput.categoryFil. The "." is for classes because that's such a common way of identifying elements.