如何在Microsoft Edge中禁用日期选择器?

时间:2015-10-02 15:24:22

标签: javascript css3 datepicker microsoft-edge html5-input-date

我有几个输入type =“date”,并且想要禁用Microsoft Edge中的默认日期选择器,因为我使用的是jQuery的datepicker。如何使用CSS或JavaScript禁用此功能?它适用于Chrome和Firefox,但不适用于Edge。任何答案都将不胜感激。

工作jsFiddle

HTML

<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>

<input type="date">

JS

$(document).ready(function() {
    if (!Modernizr.inputtypes.date || $(window).width() >= 900) {
        $('input[type=date]').datepicker();
    }
});

$(window).resize(function() {
    if (!Modernizr.inputtypes.date || $(window).width() >= 900) {
        $('input[type=date]').datepicker();             
    }
    else {
        $('input[type=date]').datepicker("destroy");
    }
});

CSS

input[type=date]::-webkit-inner-spin-button, input[type=date]::-webkit-calendar-picker-indicator  {
    display: none;
    -webkit-appearance: none;   
}

4 个答案:

答案 0 :(得分:2)

无法在Edge(although Chrome can via a hack)中禁用本机datepicker控件功能 - 无论如何。

输入控件,除非由浏览器设计,通常基于/是系统控件。这意味着输入日期选择器是输入日期选择器,select下拉列表是select下拉列表。

除了边框,填充和字体样式等基本样式以及HTML标准属性之外,大多数控件在定制方面都受到限制。 placeholder

您有几个选择:

保留默认的datepicker控件

这是我推荐的选项。坚持使用默认系统控件(+适用的样式)通常是最好的策略。这可确保最大程度地提高设备兼容性,并使用户熟悉。此外,一切通常都“正常”。

JS代码的开销也更少。

邪恶选项:浏览器检测

可以检测浏览器是否是JS代码中的Edge,然后告诉它渲染jQuery控件。你应该避免这种情况,除非你真的需要它,因为浏览器检测变得过时并且维护噩梦很快。

答案 1 :(得分:1)

输入类型必须是文本而不是日期。此...

<input type="date" />

应该是

<input type="text" />

否则Chrome和Edge会添加日期选择器。而是使用类或ID将其标识为datepicker并执行类似$(".datepicker").datepicker();

的操作

答案 2 :(得分:1)

与Cyptic一样,我必须将类型更改为文本

<input type="text" class="datepicker"/>

然后在JQuery中

$("input.datepicker:text").datepicker({
    showOn: "both",
    dateFormat: "dd MM yy",
    changeMonth: true,
    changeYear: true
});

答案 3 :(得分:0)

如果您是伊朗人,请访问this page

并将类型更改为文本

<input type="text" id="datepicker"/>

和jQuery

$("#datepicker").kamaDatepicker('BirthDate-ID');