m-persian-datepicker
Version:
jQuery datepicker plugin work with Iranian calendar. (Jalali)
503 lines (384 loc) • 9.22 kB
Markdown
# Example
## normal example
```javascript
$('.normal-example').persianDatepicker();
```
```html
<input class="normal-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo normal-example" />
## without initialValue
```javascript
$('.initial-value-example').persianDatepicker({
initialValue: false
});
```
```html
<input class="initial-value-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo initial-value-example" />
## initialValueType
```javascript
$('.initial-value-type-example').persianDatepicker({
initialValueType: 'persian'
});
```
```html
<input class="initial-value-type-example" value="1396-10-12" />
```
<label>Datepicker</label>
<input class="datepicker-demo initial-value-type-example" value="1396-10-12" />
```javascript
$('.initial-value-type-gregorian-example').persianDatepicker({
initialValueType: 'gregorian'
});
```
```html
<input class="initial-value-type-gregorian-example" value="2017-1-1" />
```
<label>Datepicker</label>
<input class="datepicker-demo initial-value-type-gregorian-example" value="2017-1-1" />
## inline
```javascript
$('.inline-example').persianDatepicker({
inline: true,
altField: '#inlineExampleAlt',
altFormat: 'LLLL',
toolbox:{
calendarSwitch:{
enabled: true
}
},
navigator:{
scroll:{
enabled: false
}
},
maxDate: new persianDate().add('month', 3).valueOf(),
minDate: new persianDate().subtract('month', 3).valueOf(),
timePicker: {
enabled: true,
meridiem: {
enabled: true
}
}
});
```
```
```html
<input id="inlineExampleAlt" class="datepicker-demo" />
<div class="inline-example" ></div>
```
<div class="one-inline-datepicker">
<label>Datepicker</label>
<input id="inlineExampleAlt" class="datepicker-demo" />
<div class="inline-example" ></div>
</div>
## Gregorian Calendar
```javascript
$('.gregorian-example').persianDatepicker({
inline: true,
altField: '#gregorianExampleAlt',
altFormat: 'LLLL',
calendarType: 'gregorian',
toolbox:{
calendarSwitch:{
enabled: true
}
},
navigator:{
scroll:{
enabled: false
}
},
maxDate: new persianDate().add('month', 3).valueOf(),
minDate: new persianDate().subtract('month', 3).valueOf(),
timePicker: {
enabled: true,
meridiem: {
enabled: true
}
}
});
```
```html
<input id="gregorianExampleAlt" class="datepicker-demo" />
<div class="gregorian-example" ></div>
```
<div class="one-inline-datepicker">
<label>Datepicker</label>
<input id="gregorianExampleAlt" class="datepicker-demo" />
<div class="gregorian-example" ></div>
</div>
## Change Leap Year Mode
```javascript
$('.leapyear-algorithmic').persianDatepicker({
inline: true,
});
$('.leapyear-astronomical').persianDatepicker({
inline: true,
calendar:{
persian: {
leapYearMode: 'astronomical'
}
}
});
```
```html
<div class="leapyear-algorithmic" data-date="2025/3/12" ></div>
<div class="leapyear-astronomical" data-date="2025/3/12" ></div>
```
<div class="two-inline-datepicker">
<div>
<label>algorithmic</label>
<div class="leapyear-algorithmic" data-date="2025/3/12" ></div>
</div>
<div>
<label>astronomical</label>
<div class="leapyear-astronomical" data-date="2025/3/12" ></div>
</div>
</div>
## locale
```javascript
$('.locale-fa').persianDatepicker({
inline: true,
});
$('.locale-en').persianDatepicker({
inline: true,
calendar:{
persian: {
locale: 'en'
}
}
});
```
```html
<div class="locale-fa" ></div>
<div class="locale-en" ></div>
```
<div class="two-inline-datepicker">
<div>
<label>fa</label>
<div class="locale-fa" ></div>
</div>
<div>
<label>en</label>
<div class="locale-en" ></div>
</div>
</div>
## Observer
true, make user able to edit date by keyboard
```javascript
$('.observer-example').persianDatepicker({
observer: true,
format: 'YYYY/MM/DD',
altField: '.observer-example-alt'
});
```
```html
<input class="observer-example" />
```
<label>Alt field</label>
<input class="datepicker-demo observer-example-alt" />
<label>Datepicker</label>
<input class="datepicker-demo observer-example" />
## format
More options in [Persian Date Documents](http://babakhani.github.io/PersianWebToolkit/datepicker)
```javascript
$('.format-example').persianDatepicker({
format: 'LLLL'
});
```
```html
<input class="format-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo format-example" />
## formatter
```javascript
$('.formatter-example').persianDatepicker({
formatter: function(unix){
return 'selected unix: ' + unix;
}
});
```
```html
<input class="formatter-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo formatter-example" />
## altField
```javascript
$('.alt-field-example').persianDatepicker({
altField: '.alt-field-example-alt-field'
});
```
```html
<input class="alt-field-example" />
```
<label>Alt field</label>
<input class="datepicker-demo-alt alt-field-example-alt-field" />
<label>Datepicker</label>
<input class="datepicker-demo alt-field-example" />
## viewMode
```javascript
$('.view-mode-example').persianDatepicker({
viewMode: 'year'
});
```
```html
<input class="view-mode-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo view-mode-example" />
## minDate
```javascript
$('.min-date-example').persianDatepicker({
minDate: new persianDate().unix()
});
```
```html
<input class="min-date-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo min-date-example" />
## maxDate
```javascript
$('.max-date-example').persianDatepicker({
maxDate: new persianDate().unix()
});
```
```html
<input class="max-date-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo max-date-example" />
## checkDate
```javascript
$('.check-date-example').persianDatepicker({
checkDate: function(unix){
return new persianDate(unix).day() != 4;
}
});
```
```html
<input class="check-date-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo check-date-example" />
## checkMonth
```javascript
$('.check-month-example').persianDatepicker({
checkMonth: function(month){
return month < 6;
}
});
```
```html
<input class="check-month-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo check-month-example" />
## checkYear
```javascript
$('.check-year-example').persianDatepicker({
checkYear: function(year){
return year >= 1391;
}
});
```
```html
<input class="check-year-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo check-year-example" />
## onlyTimePicker
```javascript
$('.only-timepicker-example').persianDatepicker({
onlyTimePicker: true
});
```
```html
<input class="only-timepicker-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo only-timepicker-example" />
## autoClose
```javascript
$('.auto-close-example').persianDatepicker({
autoClose: true
});
```
```html
<input class="auto-close-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo auto-close-example" />
## onSelect
```javascript
$('.on-select-example').persianDatepicker({
onSelect: function(unix){
console.log('datepicker select : ' + unix);
}
});
```
```html
<input class="on-select-example" />
```
<label>Datepicker</label>
<input class="datepicker-demo on-select-example" />
## Range selector
Range Selector that make sure 'to' date is after 'from' date and also 'from' is before 'to' date.
```javascript
var to, from;
to = $(".range-to-example").persianDatepicker({
inline: true,
altField: '.range-to-example-alt',
altFormat: 'LLLL',
initialValue: false,
onSelect: function (unix) {
to.touched = true;
if (from && from.options && from.options.maxDate != unix) {
var cachedValue = from.getState().selected.unixDate;
from.options = {maxDate: unix};
if (from.touched) {
from.setDate(cachedValue);
}
}
}
});
from = $(".range-from-example").persianDatepicker({
inline: true,
altField: '.range-from-example-alt',
altFormat: 'LLLL',
initialValue: false,
onSelect: function (unix) {
from.touched = true;
if (to && to.options && to.options.minDate != unix) {
var cachedValue = to.getState().selected.unixDate;
to.options = {minDate: unix};
if (to.touched) {
to.setDate(cachedValue);
}
}
}
});
```
```html
<div class="range-from-example"></div>
<div class="range-to-example"></div>
```
<div class="two-inline-datepicker">
<div>
<label>to</label>
<input class='datepicker-demo range-to-example-alt' />
<div class="datepicker-demo range-to-example" ></div>
</div>
<div>
<label>From</label>
<input class='datepicker-demo range-from-example-alt' />
<div class="datepicker-demo range-from-example" ></div>
</div>
</div>