Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if all inputs with a certain class are empty using jQuery

Tags:

jquery

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>
like image 777
Xander Avatar asked Nov 29 '22 23:11

Xander


2 Answers

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.');
    }
});
like image 72
Srinu Chinka Avatar answered Dec 18 '22 22:12

Srinu Chinka


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>
like image 23
Dhaval Marthak Avatar answered Dec 18 '22 22:12

Dhaval Marthak