JQuery найти кнопку отправки

0

Я не могу найти кнопку отправки с помощью 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>
  • 2
    Было бы лучше, если бы вы показали нам фактический HTML-вывод, который он генерирует.
  • 0
    Да, как сказал @adeneo, пожалуйста, также опубликуйте сгенерированный HTML.
Показать ещё 7 комментариев
Теги:

1 ответ

1
Лучший ответ

Однако ваш код брата и сестры неверен. В 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.

  • 0
    Да, я тоже использовал .closest ('form')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню