#javascript #html
Вопрос:
У меня есть следующий код. Я итеративно создаю элемент div для всех элементов, найденных в моем ответе.данные[]. Я также создаю флажок и текстовое поле для каждого элемента, присваивая им идентификатор, равный «j». Я установил addEventListener для каждого из флажков. При нажатии на флажок должно быть включено соответствующее текстовое поле. Однако вместо этого я получаю следующую ошибку: «Неперехваченная ошибка типа: Не удается установить свойство «отключено» null в HTMLInputElement.eval». Чего мне не хватает?
ОТВЕТ: Этот код работает. У меня была ошибка, которая была исправлена. Я не удалил сообщение, потому что там был ответ.
for (let j = 0; j < size; j ) {
var jsres = response.data[j]
div = document.createElement('div')
div.className = 'sellDiv'
div.appendChild(document.createElement('br'))
div.appendChild(document.createTextNode('On Sale: '))
let checkbox = document.createElement('input')
checkbox.type = 'checkbox'
checkbox.setAttribute('id', j)
if (jsres.ForSale === true) {
checkbox.checked = true
} else {
checkbox.checked = false
}
checkbox.addEventListener('change', function () {
if (this.checked) {
document.getElementById('Price' this.id).disabled = false
} else {
document.getElementById('Price' this.id).disabled = true
}
})
div.appendChild(checkbox)
div.appendChild(document.createElement('br'))
div.appendChild(document.createTextNode('Sale Price: '))
let text = document.createElement('input')
text.setAttribute('id', 'Price' j)
if (jsres.ForSale === true) {
text.disabled = false
} else {
text.disabled = true
}
text.setAttribute('value', jsres.Price)
div.appendChild(text)
div.appendChild(document.createElement('br'))
divArea.appendChild(div)
}
Ответ №1:
Проверьте строку, используете ли вы » в атрибуте html-идентификатора или нет, если вы сделали, значит, освободите место здесь
checkbox.addEventListener('change', function () {
if (this.checked) {
document.getElementById('Price ' this.id).disabled = false
} else {
document.getElementById('Price ' this.id).disabled = true
}
})
Комментарии:
1. Спасибо @Balaji Sivasakthi Я добавил дефис, но это не помогло. Я не понимаю, как это может что-то изменить.
2. я не знаю, какой атрибут идентификатора вы упомянули в html. Некоторые люди следуют такому типу именования.
3. На самом деле, я только что обнаружил проблему. Еще раз спасибо @Balaji Sivasakthi
4. освободите место вон там
Ответ №2:
j
значение равно 0 для размера (числа), и здесь вы добавляете Price
для селектора идентификаторов
document.getElementById('Price' this.id).disabled = false