Вы можете попробовать это:
$(document).ready(function() {
$('.field input').keyup(function() {
var hasValue = $('#username,#password').filter((index, input) => input.value.length > 0).length;
$('.actions input').attr('disabled', hasValue ? false : 'disabled');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<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>
Обновление:
$('#username,#password').filter((index, input) => input.value.length > 0).length
Эта строка означает, что мы проверим значение двух элементов ввода username
и password
, если все они не имеют никакого значения, кнопка будет отключена. Если вы хотите проверить другой элемент ввода перед включением / отключением, вы можете добавить:
$('#username,#password,#input_3,#input_4').filter(...).length
Таким образом, кнопка будет отключена при username
, password
, input_3
и * 1021. * элементы не имеют никакого значения. Убедитесь, что для каждого элемента ввода указан идентификатор c.
Обновление 2:
Проверка для username
и password
имеет некоторое значение:
var hasValue = $('#username,#password').filter((index, input) => input.value.length > 0).length === 2
Проверка для field
, field4
и field5
имеет некоторое значение:
var hasValue = $('#field,#field4,#field5').filter((index, input) => input.value.length > 0).length === 3