-3

クラス'textinput'のすべてのテキスト入力が空かどうかを確認したいのですが、最初の入力が空かどうかを確認するだけのようです。理由がわかりません。誰かが私が間違っていることを見ることができますか?

$('#check').click(function(){
    var allEmpty;
       $('.textinput').each(function(){
     if(!$('.textinput').val()){
       allEmpty = true;
     }
   });
     if (allEmpty == true){
        alert('all empty');   
     }
});
4

6 に答える 6

3

.textinput空でないものをすべて見つけて、セレクターの長さを確認します。何も存在しない場合、それらはすべて空です:

$('#check').on('click', function(){
    var allEmpty = ! $('.textinput').filter(function() {
                       return $.trim( this.value ) != "";
                   }).length;

    if (allEmpty) alert('all empty');   
});

また

if ( ! $('.textinput[value !=""]').length ) alert('all empty');
于 2013-03-10T20:09:46.203 に答える
2

反対のロジックに照らしてチェックしてみてください。いずれかの値が設定されている場合、それらはnotすべて空です。

$(this)また、関数のコンテキスト内にいるときに利用したいと考えてい.each()ます。それ以外の場合、呼び出す$('.textinput')と、現在の要素で作業するのではなく、それらの要素が再度選択されます。

$.trim()を追加すると、空白が実際の値としてカウントされなくなりますが、空白を値としてカウントする場合は、これを削除できます。

$('#check').click(function() {
  var allEmpty = true;
  $('.textinput').each(function(){
    if ($.trim($(this).val())) {
      allEmpty = false;
    }
  });
  if (allEmpty == true){
    alert('all empty');   
  }
});
于 2013-03-10T20:06:20.897 に答える
1

「this」を使用して、各メソッドで選択された要素を使用する必要があります。

$('#check').click(function () {
    var allEmpty;
    $('.textinput').each(function () {
        if (!$(this).val()) {
            allEmpty = true;
        }
    });
    if (allEmpty == true) {
        alert('all empty');
    }
});
于 2013-03-10T20:07:04.390 に答える
1

これがあなたの条件です >>

if(!$('.textinput').val()){

}else {
  allEmpty = true;
}
于 2013-03-10T20:07:44.110 に答える
1

あなたの状態は間違っています。単一のアイテムごとに allEmpty = true を設定しています。ロジックを反転する必要があります。

$('#check').click(function(){
    var almostOneNotEmpty = false;
       $('.textinput').each(function(){
     if($(this).val()){
       almostOneNotEmpty = true;
     }
   });
     if (!almostOneNotEmpty == true){
        alert('all empty');   
     }
});
于 2013-03-10T20:08:29.803 に答える
1

この簡単なチェックは、それらがすべて空であるかどうかを示します。

var isEmpty = !$('.textinput').map(function() { return this.value; }).get().join('');

trueすべてのフィールドが空白の場合、これによりブール値が得られます。

于 2013-03-10T20:11:34.997 に答える