জ্যাকুরি ইউআই ডেটপিকার। তারিখের অ্যারে অক্ষম করুন


84

আমি আমার জ্যাকোয়ারি ইউআই ডেটপিকার সমস্যার সমাধান অনুসন্ধান করার চেষ্টা করছি এবং আমার ভাগ্য নেই। এখানে আমি যা করার চেষ্টা করছি ...

আমার একটি অ্যাপ্লিকেশন রয়েছে যেখানে আমি জ্যাকারি ইউআই ডেটপিকারের বাইরে থাকা চাই এমন একটি তারিখের JSON অ্যারে ফিরিয়ে দেওয়ার জন্য কিছু জটিল পিএইচপি করছি। আমি এই অ্যারেটি ফিরিয়ে দিচ্ছি:

["2013-03-14","2013-03-15","2013-03-16"]

সহজভাবে বলতে কি কোনও সহজ উপায় নেই: ডেটপিকারটি থেকে এই তারিখগুলি অবরুদ্ধ করুন?

আমি ইউআই ডকুমেন্টেশন পড়েছি এবং আমি এমন কোনও কিছুই দেখি না যা আমাকে সাহায্য করে। কারো কোন ধারণা আছে?






কেউ কি আমাকে অনুরূপ প্রশ্নের সাইনপোস্ট করতে পারে তবে ম্যাটেরিয়ালাইজ ডেটপিকার ব্যবহার করে?
naz786

উত্তর:


209

আপনি ব্যবহার করতে পারেন beforeShowDay এই কাজ করতে

নিম্নলিখিত উদাহরণটি 14 মার্চ 2013 থেকে 16 মার্চ 2013 তারিখগুলি অক্ষম করে

var array = ["2013-03-14","2013-03-15","2013-03-16"]

$('input').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [ array.indexOf(string) == -1 ]
    }
});

ডেমো: ফিডল


4
আমি দেখতে চাই আপনি কোথায় যাচ্ছেন। যদিও আমি আমার তারিখের অ্যারেটি অন্তর্ভুক্ত করব।
ড্যানিয়েল হোয়াইট

14
কি দারুন. আপনি একটি freaking প্রতিভা ব্রা আমি জানি না কেন এটি ইতিমধ্যে এই প্রশ্নের জন্য স্ট্যাক ওভারফ্লো পোস্টগুলিতে নেই কারণ এটি এক মিলিয়ন বার জিজ্ঞাসা করা হয়েছিল। উপরে পোস্ট করা সমস্ত উদাহরণ খুব জটিল, এটি দুর্দান্ত এবং সাধারণ। 5 তারা. ধন্যবাদ
ড্যানিয়েল হোয়াইট

আমি কোডটি ডাউনলোড করেছি jqueryui.com/download/… তবে যখন আমি উপরের কোডটি এতে সংহত করছি তখন এটি কাজ করছে না pls সহায়তা
স্যাম

একটি upvote যথেষ্ট নয়। কিছু লোক জিনিসগুলি যতটা প্রয়োজন তার চেয়ে জটিল করে তোলে। একটি সাধারণ, কাজের স্নিপেটের জন্য আপনাকে অনেক ধন্যবাদ। খুব দরকারী.
0112

4
আপনি যদি এই কাস্টম তারিখগুলি ছাড়াও সাপ্তাহিক ছুটি বাদ দিতে চান তবে এর মাধ্যমে রিটার্ন লাইনটি প্রতিস্থাপন করুন:return array.indexOf(string) != -1 ? [false] : $.datepicker.noWeekends(date);
পাবলো এসজি পাচেকো

20

IE 8 এর সূচিপত্রের কাজ নেই, সুতরাং আমি এর পরিবর্তে অ্যারিতে jQuery ব্যবহার করেছি।

$('input').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return [$.inArray(string, array) == -1];
    }
});

6
@ ক্রিস্টোফারস্ট্রিডম আপনি এখনও অবাক হবেন যে কতজন লোক এখনও এটি ব্যবহার করে।
ইথার

4
এটি কারণ আইই 8 হ'ল নতুন আই ব্রাউজার যা উইনএক্সপি (এসপি 3) এ চলবে।
জোসেফকে

তবে স্ট্রিংয়ের একটি স্ট্রস্ট্রিংয়ের অবস্থান সন্ধানের জন্য এটি স্ট্রিংয়ের ইনডেক্সফ () ফাংশনটিকে সমর্থন করে।
ওয়েজি

9

আপনি যদি রবিবার (বা অন্যান্য দিন) পাশাপাশি তারিখের অ্যারে অবরুদ্ধ করতে চান তবে আমি এই কোডটি ব্যবহার করি:

jQuery(function($){

    var disabledDays = [
       "27-4-2016", "25-12-2016", "26-12-2016",
       "4-4-2017", "5-4-2017", "6-4-2017", "6-4-2016", "7-4-2017", "8-4-2017", "9-4-2017"
    ];

   //replace these with the id's of your datepickers
   $("#id-of-first-datepicker,#id-of-second-datepicker").datepicker({
      beforeShowDay: function(date){
         var day = date.getDay();
         var string = jQuery.datepicker.formatDate('d-m-yy', date);
         var isDisabled = ($.inArray(string, disabledDays) != -1);

         //day != 0 disables all Sundays
         return [day != 0 && !isDisabled];
      }
   });
});   


1

এর আগে শোডেট আমার পক্ষে কাজ করেনি, তাই আমি এগিয়ে গিয়ে নিজের সমাধানটি বিকাশ করেছি:

$('#embeded_calendar').datepicker({
               minDate: date,
                localToday:datePlusOne,
               changeDate: true,
               changeMonth: true,
               changeYear: true,
               yearRange: "-120:+1",
               onSelect: function(selectedDateFormatted){

                     var selectedDate = $("#embeded_calendar").datepicker('getDate');

                    deactivateDates(selectedDate);
                   }

           });


              var excludedDates = [ "10-20-2017","10-21-2016", "11-21-2016"];

              deactivateDates(new Date());

            function deactivateDates(selectedDate){
                setTimeout(function(){ 
                      var thisMonthExcludedDates = thisMonthDates(selectedDate);
                      thisMonthExcludedDates = getDaysfromDate(thisMonthExcludedDates);
                       var excludedTDs = page.find('td[data-handler="selectDay"]').filter(function(){
                           return $.inArray( $(this).text(), thisMonthExcludedDates) >= 0
                       });

                       excludedTDs.unbind('click').addClass('ui-datepicker-unselectable');
                   }, 10);
            }

            function thisMonthDates(date){
              return $.grep( excludedDates, function( n){
                var dateParts = n.split("-");
                return dateParts[0] == date.getMonth() + 1  && dateParts[2] == date.getYear() + 1900;
            });
            }

            function getDaysfromDate(datesArray){
                  return  $.map( datesArray, function( n){
                    return n.split("-")[1]; 
                });
             }

আমরা কি একই কাজ ডেটরেঞ্জপিকারে করতে পারি ??
সুনীল রাওয়াত

1

ডিডি-এমএম-ওয়াইয়ের জন্য এই কোডটি ব্যবহার করুন:

var অ্যারে = ["03-03-2017 ', '03 -10-2017', '03 -25-2017"]

$('#datepicker').datepicker({
    beforeShowDay: function(date){
    var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
    return [ array.indexOf(string) == -1 ]
    }
});

function highlightDays(date) {
    for (var i = 0; i < dates.length; i++) {
    if (new Date(dates[i]).toString() == date.toString()) {
        return [true, 'highlight'];
    }
}
return [true, ''];
}

ডেটরেঞ্জপিকারের পক্ষে কি এটি সম্ভব, আমি তারিখ-রেঞ্জ-পিকারে তারিখের একটি অ্যারে অক্ষম করতে চাই ??
সুনীল রাওয়াত

আপনি দয়া করে আপনার প্রশ্নের সংজ্ঞা দিতে পারেন?
ডিয়েরিগ প্যাট্রিক

আমার কাছে তারিখের ব্যাপ্তি চয়নকারী মনে করুন: 01/01/2017 - 31/03/2017। আমি এই ব্যাপ্তির মধ্যে কিছু তারিখ কাস্টম তারিখের তারিখের অ্যারে হাইলাইট করতে চাই। তারিখ-সীমা ক্যালেন্ডারে। $ তারিখ = ['02 /01/2017','03/01/2017'... এখনও] এই তারিখগুলি। সম্ভব?
সুনীল রাওয়াত

: মত datepicker আমরা ব্যবহার করতে পারেন: beforeShowDay ফাংশন এই কাজের জন্য, কি তারিখ পরিসরের জুতো রয়েছে daterangepicker.com
সুনীল রাওয়াত

1

আপনি যদি jquery ডেটপিকারে নির্দিষ্ট তারিখ (গুলি) অক্ষম করতে চান তবে এখানে আপনার জন্য সহজ ডেমো।

<script type="text/javascript">
    var arrDisabledDates = {};
    arrDisabledDates[new Date("08/28/2017")] = new Date("08/28/2017");
    arrDisabledDates[new Date("12/23/2017")] = new Date("12/23/2017");
    $(".datepicker").datepicker({
        dateFormat: "dd/mm/yy",
        beforeShowDay: function (date) {
            var day = date.getDay(),
                    bDisable = arrDisabledDates[date];
            if (bDisable)
                return [false, "", ""]
        }
    });
</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.