1

以下の js は、vselected チェックボックスの量 (サイズ) に基づいて div を明らかにし、正常に動作します。チェックボックス自体は連続した日付です。必要なのは、選択した日付が連続した順序であることを確認することです-つまり、07/04、07/05、07/06 など 日付が連続していない場合、div は表示されません (表示)。

$('input[type=checkbox]').change(function(){
   if($('input:checked').size() > 4){
     $("#hideocrp").show();   
   }
   else {
     $('#hideocrp').hide()   
   }
});
4

1 に答える 1

1

次のコードを使用して、目標を達成できます。

var start = false;
var checkstart = false;
$('#hideocrp').hide();
$('input[type=checkbox]').change(function () {
  checkstart = false;
  start = false;
  $('input[type=checkbox]').each(function () {
    if ($(this).is(":checked")) {
      var index = $(this).index("input[type=checkbox]");
      if (start == false) {
        start = index + 1;
      }
      if (index == start - 1) {
        start = start + 1;
        checkstart++;
      } else {
        checkstart = false;
        return false;
      }
    }
  });
  if (checkstart > 3) {
    $("#hideocrp").show();
  } else {
    $('#hideocrp').hide();
  }
});

ライブデモ| デモソース

編集: このコードを使用して、連続したチェックボックスの一致のリラックスした検索を実行してみてください。

var start = false;
var checkstart = false;
$('#hideocrp').hide();
$('input[type=checkbox]').change(function () {
  checkstart = 0;
  start = false;
  $('input[type=checkbox]').each(function () {
    if ($(this).is(":checked")) {
      var index = $(this).index("input[type=checkbox]");
      if (index == 0) {
        start = index+1;
      }
      if (index == start+1) {
        start = start + 1;
        checkstart++;
      } else {
        if (checkstart < 4) {
          checkstart = 1;
          start = index;
        } else {
          return false;
        }
      }
    }
  });
  if (checkstart > 3) {
    $("#hideocrp").show();
  } else {
    $('#hideocrp').hide();
  }
});

ライブデモ| デモソース

編集2:

2番目の問題を解決するには、使用するだけです

$(document).ready(function() {
  $('input[type=checkbox]').trigger("change");
});

デモ| ソース

に対してテストするには

于 2013-01-12T21:24:58.520 に答える