删除日期输入上的“清除”按钮(iOS safari)

问题描述 投票:9回答:2

是否可以在iOS Safari(<input type="date">)上删除image输入字段的“清除”按钮?我尝试过使用必需但它在iOS6或iOS7上不起作用。

html ios html5 safari
2个回答
6
投票

实际上,通过为所有最新的浏览器指定“伪类”,可以很容易地实现这一点。

如果将输入设置为“required”以消除清除按钮不起作用...

<input type="date" required="required" />

- 然后尝试以下伪类-webkit-clear-button,专门为基于webkit的浏览器设置样式:

/* Hide the clear button from date input */

input[type="date"]::-webkit-clear-button {
 -webkit-appearance: none;
  display: none;
}

您还可以探索其他有趣的伪元素来设置日期输入的样式。

例如:(从日期输入中隐藏微调器)

/* Hide the spin button from date input */

input[type="date"]::-webkit-inner-spin-button { 
  -webkit-appearance: none;
  display: none;
}

在IE上,可以通过指定::-ms-clear伪元素的Internet Explorer 10+来实现:

input[type="date"]::-ms-clear {
 display: none;
}

我在JSFiddle上构建了一个示例,它使用特定的伪元素来设置输入日期控件的样式。

另外,你会发现这两个堆栈非常有用:disable input=time clear buttoncss input-date how to get rid of x and up/down arrow elements

这是一篇关于Pseudo-Elements的有趣文章,以及如何使用它们来设置表单控件的样式:http://goo.gl/Y69VN6


0
投票

我尝试了上面提到的所有事情,但没有一个有效。

但是,您可以通过提及更改事件来处理清除按钮事件。

HTML文件:

<input type="date" (change)="dateChanged($event)" />

当用户单击Clear时,它会在此事件中将空字符串作为值发送,因此您可以通过将值检查为空字符串来执行任何操作。以下是代码:

.ts文件代码:

dateChanged(event){
if(event.target.value='' || event.target.value.length==0){
//your code , whatever you want to do when user hit clear in Date control. 
}
}

在我的情况下,我想将今天的日期设置为用户点击清除时的默认日期。它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.