Check if all inputs with a certain class are empty

2020-07-20 04:01发布

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>

标签: jquery
4条回答
啃猪蹄的小仙女
2楼-- · 2020-07-20 04:26

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>

查看更多
SAY GOODBYE
3楼-- · 2020-07-20 04:28
 $('input[type="text"]').each(function() {
        if ($.trim($(this).val()) == '') {
           alert('Please fill out all required fields.');

        }
        else {
            alert('Everything has a value.');

        }
    });

or

 $('input[class="required-entry"]').each(function() {
        if ($.trim($(this).val()) == '') {
           alert('Please fill out all required fields.');

        }
        else {
            alert('Everything has a value.');

        }
    });
查看更多
趁早两清
4楼-- · 2020-07-20 04:39

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.');
    }
});
查看更多
Juvenile、少年°
5楼-- · 2020-07-20 04:45

Maybe you could settle for

<input type="text" class="semantic-classname" required />

http://caniuse.com/#feat=form-validation

查看更多
登录 后发表回答