2016-02-22 4 views
0

Я использую jquery ui datepicker в форме в моем проекте. Я инициализирую datepicker, как это.JQuery UI datepicker формат даты

var date_lower = new Date(1910,0,1); 
var year_lower = date_lower.getFullYear(); 
var date_upper = new Date(); 
var year_upper = date_upper.getFullYear(); 
$("#id_dob").datepicker({ dateFormat: 'mm-dd-yy',minDate: date_lower, 
     maxDate: date_upper , 
     yearRange: year_lower+':'+year_upper , 
     changeYear: true, 
     changeMonth: true, 
     defaultDate: new Date(2000,01,01) 
}); 

Формат даты такой, как «mm-dd-yy». Поэтому datepicker не позволяет мне вводить дату в формате «mm/dd/yy». Когда я пытаюсь ввести '/' в inputpicker input, он ничего не делает или я не могу ввести '/' в поле ввода даты. Я делаю это, потому что я хочу дать пользователю возможность добавлять дату, не используя также calander (это требование клиента). Я хочу, чтобы установить формат даты, чтобы я мог использовать любой разделитель от [./-\s]. Например, я хочу, чтобы все эти типы дат (01-01-1999, 01/01/1999, 01.01.1999 и 01 01 1999) были приняты. Может ли кто-нибудь сказать мне, как я могу это сделать?

Я использую набор форм Django.

ответ

1

Небольшие изменения, которые я сделал В вашем коде есть некоторая проблема, вы устанавливаете формат данных времени в mm-dd-yyyy, , что для выбора даты и времени всегда требуется mm-dd-yyyy. следующей обновленного кода работы совершенно

$("#datepicker").datepicker({ 
    minDate: date_lower, 
    maxDate: date_upper, 
    changeYear: true, 
    changeMonth: true,  
}); 
+0

I хочу datepicker, чтобы получить дату в mm-dd-yyyy. Но я не хочу исправлять «-» как разделитель. Как и я хочу, чтобы все эти даты (01-01-1999, 01/01/1999, 01.01.1999 и 01 01 1999) были приняты. –

2

Проверьте это: jQuery Datepicker that supports multiple formats

В основном, настроить функцию parseDate разрешить несколько форматов, и использовать оригинальную parseDate для проверки каждого из них:

$.datepicker.inputFormats = ["mm-dd-yy", "mm/dd/yy", "mm dd yy"];//list formats to be accepted here, add formats as you see fit. 

$.datepicker.originalParseDate = $.datepicker.parseDate; 

$.datepicker.parseDate = function (format, value, settings) { 
    var date; 

    function testParse(format, value, settings) { 
     if (! date) { 
      try { 
       date = $.datepicker.originalParseDate(format, value, settings); 
      } catch (Error) { 
      } 
     } 
    } 

    testParse(format, value, settings); 
    for(var n = 0, stop = $.datepicker.inputFormats ? $.datepicker.inputFormats.length : 0; n < stop; n++){ 
     testParse($.datepicker.inputFormats[n], value, settings); 
    }; 
    return date; 
}; 
Смежные вопросы