0

کد جاوا اسکریپت برای افزایش و کاهش فیلد ساعت و تاریخ با با کیبورد(jquery)

 
sana211
sana211
کاربر تازه وارد
تاریخ عضویت : خرداد 1390 
تعداد پست ها : 6
محل سکونت : خراسان رضوی

کد جاوا اسکریپت برای افزایش و کاهش فیلد ساعت و تاریخ با با کیبورد(jquery)

در هنگام ساخت نرم افزار خیلی از مواقع input های شما تاریخ یا ساعت هستند و شما برای اینکه تاریخ را مثلا یک روزعوض کنید باید یا کل آنرا دوباره بنویسید یا ابتدا قسمت مورد نظر را select کرده سپس تغییر دهید

با استفاده از این کد میتوانید با کلید های جهت(بالا-پایین) در کیبوردتغییرات را به راحتی انجام دهید

الف:در مورد زمان:

بالا: افزایش 1 دقیقه            پایین: کاهش 1 دقیقه                     Ctrl+بالا: افزایش یک ساعت                  Ctrl+پایین: کاهش 1 ساعت

الف:در مورد تاریخ:

بالا: افزایش 1 روز            پایین: کاهش 1 روز                     Ctrl+بالا: افزایش یک ماه                  Ctrl+پایین: کاهش 1 ماه

 

A: زمان

$(document).ready(function(){
    $("#your_field_id").keydown(function(e) {
  if (e == null)
   e = window.event;
        var evt = e || window.event;
  var key = e.which || e.charCode || e.keyCode;
        var Ctrlkey = evt.ctrlKey;
        value = $(this).val();
        hour = parseInt(value.substr(0, 2));
        if(parseInt(value.substr(0, 1)) == 0 )
        {
            hour = parseInt(value.substr(1, 1));
        }
       
        minute = parseInt(value.substr(3, 2));
        if(parseInt(value.substr(3, 1)) == 0 )
        {
            minute = parseInt(value.substr(4, 1));
        }
   
        switch (key) {
        case 38: // Up
                                           
            nextMinute = minute + 1;
            nextHour = hour + 1;
           
            if(Ctrlkey == true)
            {
                if (nextHour <24)
                {                       
                    hour = hour+1;
                }
            }
            else
            {
                if(nextMinute < 60)
                {
                   minute = nextMinute;
                }
                else if ((nextMinute > 59) &&( nextHour <24))
                {
                       
                    hour = hour+1;
                    minute = 0;                   
                }
            }
            if(minute <10)
            {
                minute = ,0,+minute.toString();
            }
            else
            {
                minute = minute.toString();                   
            }
           
            if(hour <10)
            {
                hour = ,0,+hour.toString();
            }
            else
            {
                hour = hour.toString();                   
            }                   
           
            $(this).val(hour+,:,+minute);
            break;
        case 40: // Down
       
            prevMinute = minute - 1;
            prevHour = hour - 1;
   
            if(Ctrlkey == true)
            {
                if (prevHour >=0)
                {                       
                    hour = hour-1;
                }
               
            }
            else
            {
                if(prevMinute >= 0)
                {
                   minute = prevMinute;
                }
                else if ((prevMinute < 0) &&( prevHour >=0))
                {
                       
                    hour = hour-1;
                    minute = 59;                   
                }                   
            }
            if(minute <10)
            {
                minute = ,0,+minute.toString();
            }
            else
            {
                minute = minute.toString();                   
            }
           
            if(hour <10)
            {
                hour = ,0,+hour.toString();
            }
            else
            {
                hour = hour.toString();                   
            }
           
            $(this).val(hour+,:,+minute);
            break;
        }
    });
});

B: تاریخ

$(document).ready(function(){
    $("#your_input_id").keydown(function(e) {
  if (e == null)
   e = window.event;
        var evt = e || window.event;
  var key = e.which || e.charCode || e.keyCode;
        var Ctrlkey = evt.ctrlKey;
       
        value = $(this).val();
               
        year = parseInt(value.substr(0, 4));
       
        month = parseInt(value.substr(5, 2));
        if(parseInt(value.substr(5, 1)) == 0 )
        {
            month = parseInt(value.substr(6, 1));
        }
       
        day = parseInt(value.substr(8, 2));
        if(parseInt(value.substr(8, 1)) == 0 )
        {
            day = parseInt(value.substr(9, 1));
        }
   
        switch (key) {
        case 38: // Up
                                           
            nextYear = year + 1;
            nextMonth = month + 1;
            nextDay = day + 1;
           
            if(Ctrlkey == true)
            {
                if (nextMonth <=12)
                {                       
                    month = month+1;
                }
            }
            else
            {
                if(month < 7)//6 ماه اول
                {
                    if(nextDay <= 31)
                    {
                       day = nextDay;
                    }
                    else if (nextMonth <= 12)
                    {
                        month = month+1;
                        day = 1;                   
                    }
                }
                else
                {
                    if(nextDay <= 30)
                    {
                       day = nextDay;
                    }
                    else if ((nextDay > 29) &&( nextMonth <= 12))
                    {
                        month = month+1;
                        day = 1;                   
                    }                   
                    else
                    {
                        year = year+1;
                        month = 1;
                        day = 1;                                           
                    }
                }               
            }
            if(month <10)
            {
                month = ,0,+month.toString();
            }
            else
            {
                month = month.toString();                   
            }
           
            if(day <10)
            {
                day = ,0,+day.toString();
            }
            else
            {
                day = day.toString();                   
            }                   
           
            $(this).val(year+,/,+month+,/,+day);
            break;
        case 40: // Down
       
            prevYear = year - 1;
            prevMonth = month - 1;
            prevDay = day - 1;
           
            if(Ctrlkey == true)
            {
                if (prevMonth > 0)
                {                       
                    month = month-1;
                }
            }
            else
            {
                if(month <= 7)//6 ماه اول
                {
                    if(prevDay > 0)
                    {
                       day = prevDay;
                    }
                    else if(prevMonth > 0)
                    {
                        month = month-1;
                        day = 31;                   
                    }
                    else
                    {
                        year = year-1;
                        month = 12;
                        day = 30;                                           
                    }
                }
                else
                {
                    if(prevDay > 0)
                    {
                       day = prevDay;
                    }
                    else if ( prevMonth > 0)
                    {
                        month = month-1;
                        day = 30;                   
                    }                   
                }               
            }
            if(month <10)
            {
                month = ,0,+month.toString();
            }
            else
            {
                month = month.toString();                   
            }
           
            if(day <10)
            {
                day = ,0,+day.toString();
            }
            else
            {
                day = day.toString();                   
            }                   
           
            $(this).val(year+,/,+month+,/,+day);
            break;
        }
    });
});

پنج شنبه 2 شهریور 1391  10:19 PM
تشکرات از این پست
دسترسی سریع به انجمن ها