<td> <input id="field_inDate" data-cy="inDate" type="datetime-local" class="form-control" name="inDate" formControlName="inDate" placeholder="YYYY-MM-DD HH:mm" /> </td> 以上是一段angular代码我想让这段代码不显示时分于是我将 type="datetime-local"改成 type="date",但是这样改后页面显示的数据就没了为什么怎么解决
时间: 2024-02-14 14:12:57 浏览: 147
将 `type="datetime-local"` 改成 `type="date"` 后,页面只会显示日期,而不会显示时间。如果你想同时显示日期和时间,但是不想让用户选择时间,可以将 `type="datetime-local"` 改成 `type="text"`,然后在输入框内添加一个默认的时间值,例如:
```html
<td>
<input id="field_inDate"
data-cy="inDate"
type="text"
class="form-control"
name="inDate"
formControlName="inDate"
placeholder="YYYY-MM-DD HH:mm"
value="{{ inDate | date: 'yyyy-MM-dd 00:00' }}"
(blur)="onBlur()" />
</td>
```
这样,页面会默认显示日期和时间,时间部分为 00:00,用户无法修改时间,但是仍然可以看到日期和时间。同时,为了保证数据正确性,你需要在组件中添加一个 `blur` 事件处理函数,用于在用户修改日期后,自动追加默认的时间。例如:
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent {
inDate: Date;
constructor() {
this.inDate = new Date();
}
onBlur() {
if (this.inDate) {
this.inDate.setHours(0, 0, 0, 0); // 将时间设置为 0 点
}
}
}
```
这样,当用户选择日期后,页面会自动追加一个默认的时间(例如 00:00),用户可以选择修改或保留。同时,当用户修改日期后,组件会自动将时间部分设置为 0 点。
阅读全文