Я хотел знать, как мы можем получить тип элемента с именем тега. Я создаю код в HTML-форме. Существуют все типы элементов ввода HTML (текстовое поле, кнопка, датапикер).
Я хочу, чтобы, если пользователь выберет опцию из раскрывающегося списка, отключите флажки. Но флажок генерируется с использованием цикла PHP, и я также передал id в поле checkbox, поэтому я не могу использовать:
document.getElementsByName('checkbox');
Имя моего флажка - "checkbox", поэтому я попытался использовать:
document.getElementsByTagName('input');
который я отключил флажок, но это заблокировало все элементы ввода на странице. Есть ли решение для этого? Как я могу использовать атрибут type с ним как флажок и отключить флажок:
function disabler()
{
checkboxes = document.getElementsByTagName('input');
if(checkboxes.type='checkbox')
{
for(var i=1, n=checkboxes.length;i<n;i++)
{
checkboxes[i].disabled = true;//here i want to disable only the checkbox on page
}
}
}
Вы используете оператор присваивания =
НЕ сравнение ==
. Заменить эту строку
if(checkboxes.type='checkbox')
с
if(checkboxes.type == 'checkbox')
или строгий оператор сравнения ===
(сравнивается также тип переменной, например, "0" === 0
- false, но "0" == 0
истинно)
if(checkboxes.type === 'checkbox')
Кроме того, вы пытаетесь получить доступ type
атрибута коллекции возвращенного getElementsByTagName
. Чтобы получить доступ к определенному элементу, обратитесь к checkboxes
как это был массив
if(checkboxes[0].type === 'checkbox') //accesses first checkbox element
Чтобы прокручивать все элементы, проверяя их, если это флажок, сделайте это
for(var i=0; i < checkboxes.length; i++)
{
if(checkboxes[i].type === 'checkbox') {
checkboxes[i].disabled = true;
}
}
=
неправильный оператор, но проверка checkboxes.type
также неверна в том, что checkboxes
- это список ...
В JavaScript =
оператор присваивания. ==
и ===
- операторы равенства (свободные и строгие, соответственно). Так:
if(checkboxes.type=='checkbox') // Loose, does type conversion (not relevant here)
или
if(checkboxes.type==='checkbox') // Strict, no type conversion (not relevant here)
checkboxes
- это список узлов, а не один элемент. Вам нужно выполнить проверку на checkboxes[i]
:
function disabler()
{
checkboxes = document.getElementsByTagName('input');
for(var i=1, n=checkboxes.length;i<n;i++)
{
if (checkboxes[i].type == 'checkbox') {
checkboxes[i].disabled = true;
}
}
}