Я пытаюсь сделать генератор анекдотов. Пользователь может выбирать между Программированием, Разным и Темными шутками (или двумя / всеми, но не может выбрать ни одной). Прямо сейчас для моих Javascript и HTML у меня это:
$("#first-input").val("Programming");
$("#middle-input").val("Miscellaneous");
$("#bottom-input").val("Dark");
let checkboxes = $(".content-top input[type=checkbox]");
let submitButton = $("button[type=submit]");
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Joke</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
<form action="/joke" method="POST">
<div class="section">
<label><span>*</span> Select a category / categories:</label>
<div class="content content-top">
<input type="checkbox" name="category" id="first-input">
<h5>Programming</h5>
<br>
<input type="checkbox" name="category" id="middle-input">
<h5>Miscellaneous</h5>
<br>
<input type="checkbox" name="category" id="bottom-input">
<h5>Dark Jokes</h5>
</div>
</div>
<button type="submit">Generate Joke</button>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</body>
</html>
HTML У меня сейчас три флажка с одинаковым атрибутом имени, но с разными установленными значениями (значения были установлены в Javascript выше) . Как мне использовать jQuery, чтобы при нажатии кнопки отправки появлялся массив, а элементы в массиве проверялись пользователем? Так, например: если пользователь выбирает флажки «Программирование», «Разное» и «Темный», в массиве будет 3 элемента (три элемента будут «Программирование», «Разное» и «Темное»). Затем, если пользователь снимет флажок «Темный» (теперь отмечены только флажки «Программирование» и «Разное»), массив также удалит элемент «Темный» и теперь будет иметь только 2 элемента.
Я много чего пробовал и искал в Google, и пробовал использовать "input: checked", is (), et c. но я не мог понять, как заставить его работать.
Вопрос: Как мне получить массив, а элементы в массиве являются значениями флажков, отмеченных пользователем (например, «Программирование», «Темный» и т. д. c.) без повторов, и если пользователь, например, первоначально установил все три флажка, а затем перейдет к снятию флажка «Темный», массив также должен удалить «Темный» как один из его предметов.
Я застрял на этом несколько часов и был бы очень признателен за любую помощь, спасибо!