Saya mencoba membuat semua tanggal yang tidak diinginkan/tidak berarti dalam hal konteks aplikasi saya pada kalender datepicker jquery ui saya dinonaktifkan untuk meningkatkan pengalaman pengguna tetapi untuk beberapa alasan semuanya dinonaktifkan.

Saya menggunakan datepicker jquery ui.

Bantuan apa pun akan dihargai. Saya telah mencoba mengulang secara manual melalui setiap item dalam array juga.

Kode saya:

var unavailableDates = ["9-5-2011","14-5-2011","15-5-2011"];

function available(date) {
  dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
  console.log($.inArray(dmy, unavailableDates));
  if ($.inArray(dmy, unavailableDates) != -1) {
    return [true, "", "Available"];
  } else {
    return [false, "", "unAvailable"];
  }
}

Demo JSFiddle

0
user4756836 11 Agustus 2017, 02:31

2 jawaban

Jawaban Terbaik

Anda telah membalikkan kondisinya, Anda ingin mengembalikan true, seperti pada hari-hari dapat dipilih jika tidak ada dalam larik, dan false jika tidak dapat dipilih, yaitu mereka ada dalam larik

var unavailableDates = ["9-8-2017", "14-8-2017", "15-8-2017", "16-8-2017", "17-8-2017", "18-8-2017"];

function available(date) {
  var dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();

  if ($.inArray(dmy, unavailableDates) == -1) {
    return [true, "", "Available"];
  } else {
    return [false, "", "unAvailable"];
  }
}

$('#date').datepicker({
  beforeShowDay: available
});
<input type="text" name="date" id="date" readonly="readonly" size="12" />


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css">
1
adeneo 10 Agustus 2017, 23:51

Pertama, Anda harus memeriksa

$.inArray(date, unavailableDates) === -1

Itu berarti date TIDAK DI unavailableDates

Kedua, Anda harus membandingkan tanggal dengan new Date().getTime(), periksa jsfiddle:

http://jsfiddle.net/ekop9nwf/3/

var unavailableDates = [new Date("9-5-2011").getTime(), new Date("14-5-2011").getTime(), new Date("15-5-2011").getTime()];

function available(date) {  
  if ($.inArray(date.getTime(), unavailableDates) === -1) {
    return [true, "", "Available"];
 } else {
   return [false, "", "unAvailable"];
 }
}

$('#date').datepicker({
  beforeShowDay: available
});
0
Ivan Pazhitnykh 11 Agustus 2017, 00:00