在Google Chrome中禁用原生日期选择器

Ale*_*dre 88 html html5 google-chrome datepicker

日期选择器登陆Chrome 20,是否有任何属性可以禁用它?我的整个系统使用jQuery UI datepicker和它的crossbrowser,因此,我想禁用Chrome原生日期选择器.有标签属性吗?

Yac*_*ani 134

隐藏箭头:

input::-webkit-calendar-picker-indicator{
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

并隐藏提示:

input[type="date"]::-webkit-input-placeholder{ 
    visibility: hidden !important;
}
Run Code Online (Sandbox Code Playgroud)

  • :: - webkit-input-placeholder不会隐藏"mm/dd/yyyy"文本,因为它不是占位符,而是本机控制的. (3认同)
  • 据我所知,这不适用于 Android Chrome - http://fiddle.jshell.net/RgY3t/138/ (2认同)

rjm*_*nro 51

如果你误用了,<input type="date" />你可以使用:

$('input[type="date"]').attr('type','text');
Run Code Online (Sandbox Code Playgroud)

加载后将它们转换为文本输入.您需要先附加自定义日期选择器:

$('input[type="date"]').datepicker().attr('type','text');
Run Code Online (Sandbox Code Playgroud)

或者你可以给他们一个班级:

$('input[type="date"]').addClass('date').attr('type','text');
Run Code Online (Sandbox Code Playgroud)

  • 轻松我最喜欢的解决方案.它很简单,不会实现特定于浏览器的CSS选择器.预期的结果IMO应该是在启用JavaScript时阻止本机控制,允许自定义日期选择器.但是,如果禁用JavaScript,则原生控件仍然有效.老实说,这应该是公认的答案. (4认同)
  • 对于像出生日期这样的字段不想要日历日期选择器,但仍希望由本机浏览器验证字段是完全有效的. (3认同)
  • @travesty3 那些版本的 IE 是否支持 html5 日期选择器,或者只是回退到文本?如果没有,那就无所谓了。 (2认同)
  • 我不明白为什么将 &lt;input type="date"&gt; 用于日期字段会误用它?(这个答案的第一句话) (2认同)

Jim*_*mbo 15

你可以使用:

jQuery('input[type="date"]').live('click', function(e) {e.preventDefault();}).datepicker();
Run Code Online (Sandbox Code Playgroud)

  • @JustinBull是的,但问题不在于删除样式,而是允许使用jQuery日期选择器来代替这个答案.任何想法如何删除样式? (4认同)
  • 如果你使用jQuery> = 1.7:`jQuery('input [type ="date"]').on('click',function(e){e.preventDefault();}).datepicker();` (3认同)

Cod*_*ity 7

使用Modernizr(http://modernizr.com/),它可以检查该功能.然后你可以将它绑定到它返回的布尔值:

// does not trigger in Chrome, as the date Modernizr detects the date functionality.
if (!Modernizr.inputtypes.date) { 
    $("#opp-date").datepicker();
}
Run Code Online (Sandbox Code Playgroud)

  • 当本机日期选择器不可用时,这对于回退到jQuery datepicker非常有用.然而,这个问题看起来是关于摆脱Chrome的日期选择器,所以我已经投了你的答案. (3认同)

Man*_*imo 6

这对我有用

input[type=date]::-webkit-inner-spin-button, 
input[type=date]::-webkit-outer-spin-button { 
  -webkit-appearance: none; 
  margin: 0; 
}
Run Code Online (Sandbox Code Playgroud)