清除Microsoft Edge中输入类型日期的值

mit*_*and 8 html5 date microsoft-edge

Microsoft Edge显示HTML5日期选择器以输入由其定义的输入的值

<input type="date">
Run Code Online (Sandbox Code Playgroud)

有没有办法显示一个清除按钮或'x'装饰来删除之后的值,就像谷歌浏览器一样?

Sam*_*son 8

这里最好的选择可能是隐藏Chrome提供的自定义清除标记,并为所有浏览器提供自己的标记:

input::-webkit-clear-button {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

然后,您将提供自己的清除按钮:

<input type="date" required />
<button>Clear</button>
Run Code Online (Sandbox Code Playgroud)

最后,只要点击按钮,就可以清除输入的一小段逻辑:

(function () {

    "use strict";

    var elmnt = document.querySelector( "input" );
    var clear = document.querySelector( "button" );

    clear.addEventListener( "click", function ( event ) {
        elmnt.value = "";
    });

}());
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助.

小提琴:http://jsfiddle.net/zcay9qc5/

  • 好的,那很有效.但我仍然对Microsoft Edge支持输入类型日期感到惊讶,但是没有提供清晰的按钮. (5认同)
  • @Michael当IE 10发布时,我们(我在Microsoft Edge团队工作)为几乎所有表单元素添加了清晰的按钮.许多开发人员都很不高兴,因为他们已经*在他们的UI中有了清晰的按钮.这次我们有可能尝试*学习我们的课程*) (2认同)
  • @Sampson 感谢您为开发人员提供的解决方法。根据你对迈克尔的评论(我意识到他真的很老),我觉得 Edge 团队没有抓住重点。**问题不在于没有清除按钮。问题是,如果没有开发人员提供的一些解决方法,就无法清除日期字段。** 如果我可以选择日期文本并点击 Backspace 或 Delete,那么我就不会发表评论,但我什至做不到那。 (2认同)