9

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

4

3 回答 3

6

实际上,通过为所有最新的浏览器指定一个“伪类”来实现这一点非常简单。

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

<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 上,可以通过针对 Internet Explorer 10+ 指定::-ms-clear伪元素来实现:

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

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

于 2014-03-06T04:17:16.820 回答
0

我尝试了上面提到的所有东西,但都没有奏效。

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

HTML 文件:

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

当用户单击清除时,它将在此事件中将空字符串作为值发送,因此您可以通过将值检查为空字符串来做任何您想做的事情。下面是代码:

.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. 
}
}

就我而言,我想将今天的日期设置为用户点击清除时的默认日期。它对我有用。

于 2019-04-06T17:43:08.303 回答
0

可以通过设置 required-Attribute 来禁用清除按钮 - 这似乎有点合乎逻辑,因为不应清除所需的输入。

<input type="date" name="foo" value="2018-06-08" required />

在当前版本的 FF、Chrome、Edge 中测试

于 2021-03-16T14:45:56.123 回答