Disable на кнопку пока не заполнены обязательные поля

есть форма в 3 шага с копкой "далее" При нажатии на кнопку выполняю on click

$("#step2").hide()
$("#step3").show()

Есть инпуты с обязательным заполнением required

Мне нужно чтобы кнопка "Далее" была disabled пока не будут заполнены обязательным поля повесил изначально на кнопку disabled Пытаюсь проверять min lenght, если есть то удаляю атрибут disabled все работает, но проблема в том что инпутов несколько с обязательным заполнении, а оно открывает кнопку если заполнен один, не могу создать условие для всех 4-х полей. реализовать нужно c помощью jQuery Помогите пожалуйста. Спасибо


Ответы (2 шт):

Автор решения: Material

Если я вас правильно понял то вот так.

$(document).ready(function() {
  $('.field input').on('keyup', function() {
    let empty = false;

    $('.field input').each(function() {
      empty = $(this).val().length == 0;
    });

    if (empty)
      $('.actions input').attr('disabled', 'disabled');
    else
      $('.actions input').attr('disabled', false);
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>


<!-- begin snippet: js hide: false console: true babel: false -->






<div class='form'>
  <form>
    <div class='field'>
      <label for="username">Username</label>
      <input id="username" type="text" />
    </div>
    <div class='field'>
      <label for="password">Password</label>
      <input id="password" type="password" />
    </div>
    <div class='actions'>
      <input type="submit" value="Login" disabled="disabled" />
    </div>
  </form>
</div>​

→ Ссылка
Автор решения: Даниил Литвак

Вопрос решен, всем спасибо

    function checkFormstep1() {
    let lastName = $('#lastName').val();
    let firstName = $('#firstName').val();
    let numberPhone = $('#phone').val();

    if (checkNumber === false) {
        $('.success').empty()
        $('.errors').text('Номер не проверен')
    } else if (checkNumber === true && lastName && firstName && numberPhone) {
            $("#step1").hide()
            $("#step2").show()
            $('.errors').text('')
    } else {
        $('.success').empty()
        $('.errors').text('Заполните все данные')
    }
}

Решил вопрос немного по другому, на кнопку повесил функцию, с условиями что поля должны быть заполнены, если НЕТ то выдаем тест с ошибкой, если все ок пускаем пользователя на следующий шаг.

→ Ссылка