I'm trying to check if all input fields with a certain class are empty. Right now I have the following code:
HTML
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<button class="check-fields">Check Fields</button>
jQuery
$('.check-fields').on('click', function () {
var value = $('.required-entry').filter(function () {
return this.value != '';
});
if (value.length == 0) {
alert('Please fill out all required fields.');
} else if (value.length > 0) {
alert('Everything has a value.');
}
});
But this throws the message "Everything has a value." if ANY one of the inputs has a value. I'm trying to only throw that message when every input with this class has something in it.
$('.check-fields').on('click', function () {
var value = $('.required-entry').filter(function () {
return this.value != '';
});
if (value.length == 0) {
console.log('Please fill out all required fields.');
} else if (value.length > 0) {
console.log('Everything has a value.');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<button class="check-fields">Check Fields</button>
I also have this fiddle with slightly different code.. also throws the Everything has a value message when the first input is the only one filled.
$('.check-fields').on('click', function () {
if($.trim($('.required-entry').val()) === '') {
console.log('Please fill out all required fields.');
} else {
console.log('Everything has a value.');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<button class="check-fields">Check Fields</button>
check the following code:
$('.check-fields').on('click', function () {
var reqlength = $('.required-entry').length;
console.log(reqlength);
var value = $('.required-entry').filter(function () {
return this.value != '';
});
if (value.length>=0 && (value.length !== reqlength)) {
alert('Please fill out all required fields.');
} else {
alert('Everything has a value.');
}
});
You might have to change condition for the same like following, Do empty checking.
var value = $('.required-entry').filter(function () {
return this.value === '';
});
Depends on above condition you can change if
condition, you will get 0
count if all inputs have value, other wise >0
count.
if (value.length == 0) {
alert('Everything has a value.');
}
else if (value.length > 0) {
alert('Please fill out all required fields.');
}
Example
$('.check-fields').on('click', function () {
var value = $('.required-entry').filter(function () {
return this.value === '';
});
if (value.length == 0) {alert('Everything has a value.');
} else if (value.length > 0) {
alert('Please fill out all required fields.');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<input type="text" class="required-entry">
<button class="check-fields">Check Fields</button>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With