Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Идентификация Checkbox (https://javascript.ru/forum/events/82466-identifikaciya-checkbox.html)

Terentiy 12.05.2021 09:23

Идентификация Checkbox
 
Доброго времени суток. Я начинаю изучать JS и у меня возникла проблема с идентификацией checkbox'a.

Задача заключалась в следующем:
Необходимо написать алгоритм, который при нажатии на кнопку "Button" будет создавать checkbox и добавлять его на веб-страницу. С этой задачей я справился, но потом мне понадобилось определить активен ли какой-то конкретный checkbox или нет. И вот с этим у меня проблемы. Я пытался добавить "имя" созданному checkbox с помощью метода checkbox.id, но у меня не вышло. Возможно, я делал что-то на так.
Вопрос: можно ли обратиться к конкретному checkbox'у, созданному с помощью нажатия на кнопку "Button", и можно ли узнать его состояние?

HTML
<button onclick="addCheckbox()">Button</button>
<br>


JS
// Функция, отвечающая за создание checkbox
function createCheckbox() {
	var checkbox = document.createElement("input")
	checkbox.type = "checkbox"
	return checkbox
}
 
// Функция, которая создает checkbox при нажатии на кнопку и добавляет его на веб-страницу 
	function addCheckbox() { 
	var checkbox = createCheckbox()
	document.body.append(checkbox)
}

voraa 12.05.2021 09:28

Цитата:

Сообщение от Terentiy
Я пытался добавить "имя" созданному checkbox с помощью метода checkbox.id, но у меня не вышло. Возможно, я делал что-то на так.

Покажите, что вы делали, тогда будет ясно, так или не так.

Terentiy 12.05.2021 09:32

Цитата:

Сообщение от voraa (Сообщение 536470)
Покажите, что вы делали, тогда будет ясно, так или не так.

// Функция, отвечающая за создание checkbox
function createCheckbox() {
	var i = 1;
	var checkbox = document.createElement("input")
	checkbox.type = "checkbox"
	checkbox.id = `${i}`
	var i = ++i
	return checkbox
}

voraa 12.05.2021 09:40

У вас при вызове createCheckbox каждый раз создается локальная переменная i. И она каждый раз получает значение 1.
Все созданные элементы будут иметь id='1'
Надо вынести i функции
let checkboxNumber = 0;
function createCheckbox() {
    var checkbox = document.createElement("input")
    checkbox.type = "checkbox"
    checkbox.id = `${++checkboxNumber}`
    return checkbox
}

Terentiy 12.05.2021 09:42

Цитата:

Сообщение от voraa (Сообщение 536472)
У вас при вызове createCheckbox каждый раз создается локальная переменная i. И она каждый раз получает значение 1.
Все созданные элементы будут иметь id='1'
Надо вынести i функции
let checkboxNumber = 0;
function createCheckbox() {
    var checkbox = document.createElement("input")
    checkbox.type = "checkbox"
    checkbox.id = `${++checkboxNumber}`
    return checkbox
}

Я догадывался, что в этом проблема, но не мог придумать как можно вынести это за функцию.

Terentiy 12.05.2021 09:44

Цитата:

Сообщение от voraa (Сообщение 536472)
У вас при вызове createCheckbox каждый раз создается локальная переменная i. И она каждый раз получает значение 1.
Все созданные элементы будут иметь id='1'
Надо вынести i функции
let checkboxNumber = 0;
function createCheckbox() {
    var checkbox = document.createElement("input")
    checkbox.type = "checkbox"
    checkbox.id = `${++checkboxNumber}`
    return checkbox
}

Спасибо большое :)


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