У меня есть эта разметка HTML:
<input type="text" name="name1" class="stat" value="">
<input type="checkbox" name="name1" value="">
<input type="text" name="name2" class="stat" value="">
<input type="checkbox" name="name2" value="">
<input type="text" name="namei" class="stat" value="">
<input type="checkbox" name="namei" value="">
where i = 1,2,3, ... n
В: Как установить флажок с именем2?
Правильно ли это?
$('input[name="name2"]').find('input[type="checkbox"]').attr("disabled");
Вы можете использовать несколько селекторов атрибутов одновременно. Ваша find
не будет работать, потому что checkbox
является родным текстом input
текста, а не дочерним. Попробуй это:
$('input[name="name2"][type="checkbox"]').prop("disabled");
Обратите внимание, что это будет очень медленным в производительности. Лучшим решением является использование атрибута class
или id
в самом флажке и выбор по нему. Кроме того, вы должны использовать prop
для извлечения свойств элемента.
Наконец, если вы хотите установить disabled
свойство, вам необходимо предоставить второй параметр методу prop
:
$('input[name="name2"][type="checkbox"]').prop("disabled", true); // disables the element
find()
выбирает элементы, спускающиеся с совпадающего элемента.
Здесь флажки и поля ввода - это братья и сестры.
Пытаться:
$('input[type="text"][name="name2"]').next().attr("disabled","disabled");
ИЛИ
$('input[type="checkbox"][name="name2"]').attr("disabled","disabled");