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