Я не могу найти кнопку отправки с помощью parent() или братьев или сестер или find() или детей или чего-либо еще. У меня есть много делений (для цикла) с одинаковой структурой [у каждого деления есть диманическое имя]
Это мой код:
Часть Javascript:
$('.notempty').keyup(function () {
alert($(this).val()); // alerts the value normally
if ($(this).val().length == 0) {
$(this).siblings('.submit').attr('disabled', 'disabled');
} else {
$(this).siblings('.submit').removeAttr('disabled');
}
});
HAML: (имя примечания является переменной)
%div{id: 'status' + name, class: 'modal hide fade padded'}
%form.form{name: 'form' + name, class: 'form-inline'}
.form-group
.col-10
%input.form-control{id: 'duration', name: 'duration', class: 'notempty'}
.col-sm-offset-2.col-sm-10
%button.btn.btn-default{type: 'submit', id: 'submit', disabled: 'disabled', class: '.submit'} Submit
Код работал, когда я явно использовал $("#submit")
но я не могу сделать это с более чем одним делением, так как он вернет первый файл, который он находит, а не тот, который связан с этой конкретной формой /divison
Обновить HTML, сгенерированный в исходном виде
<!-- popup -->
<div class='modal hide fade padded' id='statusx1'>
<form class='form form-inline' name='maintenancex1'>
<div class='form-group'>
<div class='col-10'>
<input class='form-control notempty' id='duration' name='duration'>
</div>
<div class='col-sm-offset-2 col-sm-10'>
<button class='.submit btn btn-default' disabled='disabled' id='submit' type='submit'>Submit</button>
</div>
</div>
</form>
</div>
Однако ваш код брата и сестры неверен. В jQuery sibling - это элемент, который содержится внутри одного и того же родителя, а не элемента grandparent, который у вас есть. Итак, пример братьев и сестер в вашем случае,
<div class='col-10'>
<input class='form-control notempty' id='duration' name='duration'>
<div class='i-am-a-sibling-to-notemptydiv>
</div>
<div class='col-10'>
<input class='form-control' id='duration' name='duration'>
<div class='i-am-not-a-sibling-to-notempty'></div>
</div>
Вы хотите написать часть javascript, как это,
if ($(this).val().length == 0) {
$(this).parents().find('.submit').attr('disabled', 'disabled');
} else {
$(this).parents().find('.submit').removeAttr('disabled');
}
Также, как указывалось ранее, не пишите.submit, а отправляйте в класс html.