diff --git a/Documentation/Blazorise.Docs/Pages/Docs/Components/Dates/DatePickerPage.razor b/Documentation/Blazorise.Docs/Pages/Docs/Components/Dates/DatePickerPage.razor index 86c4b200b7..3dd0a0231e 100644 --- a/Documentation/Blazorise.Docs/Pages/Docs/Components/Dates/DatePickerPage.razor +++ b/Documentation/Blazorise.Docs/Pages/Docs/Components/Dates/DatePickerPage.razor @@ -287,7 +287,7 @@ Display the calendar in an always-open state with the inline option. - + If enabled, it disables the native input on mobile devices. \ No newline at end of file diff --git a/Source/Blazorise/Components/DatePicker/DatePicker.razor.cs b/Source/Blazorise/Components/DatePicker/DatePicker.razor.cs index 46b24bb939..ed91ad7216 100644 --- a/Source/Blazorise/Components/DatePicker/DatePicker.razor.cs +++ b/Source/Blazorise/Components/DatePicker/DatePicker.razor.cs @@ -533,7 +533,7 @@ protected override IReadOnlyList InternalValue /// /// If enabled, it disables the native input on mobile devices. /// - [Parameter] public bool DisableMobile { get; set; } = true; + [Parameter] public bool DisableMobile { get; set; } #endregion } \ No newline at end of file diff --git a/Source/Blazorise/wwwroot/datePicker.js b/Source/Blazorise/wwwroot/datePicker.js index f42be7751d..441bdfa6a7 100644 --- a/Source/Blazorise/wwwroot/datePicker.js +++ b/Source/Blazorise/wwwroot/datePicker.js @@ -39,8 +39,8 @@ export function initialize(element, elementId, options) { const defaultOptions = { enableTime: options.inputMode === 1, dateFormat: options.inputMode === 1 ? 'Y-m-d H:i' : 'Y-m-d', - allowInput: true, - altInput: true, + allowInput: !(isMobile() && (options.disableMobile || false)), + altInput: !(isMobile() && (options.disableMobile || false)), altFormat: options.displayFormat ? options.displayFormat : (options.inputMode === 1 ? 'Y-m-d H:i' : 'Y-m-d'), defaultDate: options.defaultDate, minDate: options.min, @@ -52,7 +52,7 @@ export function initialize(element, elementId, options) { clickOpens: !(options.readOnly || false), disable: options.disabledDates || [], inline: options.inline || false, - disableMobile: options.disableMobile || true, + disableMobile: options.disableMobile || false, static: true }; @@ -69,7 +69,7 @@ export function initialize(element, elementId, options) { const picker = flatpickr(element, Object.assign({}, defaultOptions, pluginOptions)); - if (options) { + if (options && picker.altInput) { picker.altInput.disabled = options.disabled || false; picker.altInput.readOnly = options.readOnly || false; } @@ -218,4 +218,10 @@ export function select(element, elementId, focus) { if (picker && picker.altInput) { utilities.select(picker.altInput, null, focus); } +} + +function isMobile() { + return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent + ); } \ No newline at end of file