Почему то у меня проверяет только один input вместо каждого с name=one. Кто может подсказать как сделать проверку каждого input name="one" ?
$(document).ready(function () {
var inputRequired = $( "input[name='one']" );
$('button').on('click', function() {
if( !inputRequired.val() ) {
console.log("Error");
$(this).parent().find("input[name='one']").val("").addClass('error');
} else {
console.log("OK!");
}
})
});
input {
display: flex;
margin: 5px;
}
button {
display: flex;
margin: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input class="date" type="text" name="one" >
<input class="name" type="text" name="one" >
<input class="money" type="text" name="one" >
<input class="price" type="text" >
<button>Click</button>
</div>
input-а можно проверять отдельно с помощью метода each. Либо можно сразу отфильтровать input-ы с некорректными значениями с помощью метода filtererror, надо полагать, нужно добавлять только тем input-ам, у которых некорректное значениеerror стоит убирать у тех элементов, значение которых стало валиднымВ итоге получается так:
$(document).ready(function() {
var $inputsRequired = $("input[name='one']");
$("button").on("click", function() {
$inputsRequired.removeClass("error");
var $incorrectInputs = $inputsRequired.filter(function() {
return this.value == "";
});
if ($incorrectInputs.length != 0) {
console.log("Error");
$incorrectInputs.val("").addClass("error");
}
else {
console.log("OK!");
}
});
});
input {
display: flex;
margin: 5px;
}
button {
display: flex;
margin: 5px;
}
.error {
background-color: red;
}
<div>
<input class="date" type="text" name="one">
<input class="name" type="text" name="one">
<input class="money" type="text" name="one">
<input class="price" type="text">
<button>Click</button>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$(document).ready(function () {
var inputRequired = $( "[name = 'one']" );
$('button').on('click', function() {
if( !inputRequired.val() ) {
console.log("Error");
$(this).parent().find("[name = 'one']").val("").addClass('error');
} else {
console.log("OK!");
}
});
});
Также более современно будет использовать вместо:
$(document).ready(function () {
// Ваш код
});
Это:
$(function() {
// Ваш код
});
Сборка персонального компьютера от Artline: умный выбор для современных пользователей