я делаю что-то не так или это ошибка (средний, выбор года не работает):
<!-- Month Control -->
<input
type = "month"
view = "month"
dateFormat = "mm"
>
<!-- Year Control -->
<input
type = "year"
view = "year"
dateFormat = "yy"
/>
<p-calendar
view = "year"
dateFormat = "yy"
/>
Элемент управления МЕСЯЦ работает как средство выбора даты, нижний элемент выбора года в p-календаре работает, но средний элемент для выбора года не работает и отображается только как поле ввода текста.
Есть ли какой-то конкретный набор «типа», «представления» и т. д., который мне не хватает, возможно, я еще не пробовал? Или это действительно ошибка все еще/снова?
Я думаю, что исправление ошибки 2 года назад исправило только реактивное использование «formControlName» с «p-calendar» для выбора года, а не базовое/полное «исправление» reactive+yearpicker (https://github. com/primefaces/primeng/issues/11223)
--Версии: Угловой интерфейс командной строки: 16.2.11 Узел: 18.17.1 Менеджер пакетов: npm 9.6.7 ОС: Win32x64. пример: 16.9.1
Спасибо за совет, если я что-то пропустил или подтверждение, это должно быть отмечено как ошибка.





HTML пока не поддерживает «type=year», чтобы отображать только год. Вы можете сделать что-то свое, используя type=number и указать минимальное максимальное значение, например это, или использовать p-календарь.
Я бы рекомендовал просто использовать <p-calendar> в качестве средства выбора даты.
Если вы все еще хотите иметь специальный ввод для year, вы можете использовать шаблоны регулярных выражений для проверки ввода следующим образом.
//.ts
formGroup = new FormGroup({
year: new FormControl('', {
validators: Validators.pattern('20[0-2][0-9]'),
}),
});
changedValue(): void {
const yearInput = this.formGroup.get('year');
const valid: boolean = yearInput?.errors ? false : true;
console.info(valid);
// Do stuff with the input value
}
//.html
<form [formGroup] = "formGroup">
<input formControlName = "year" (change) = "changedValue()">
</form>
Это добавит ошибку к FormControl, если входное значение не является числом от 2000 до 2029.
Проблема заключается в том, что type = "year" не является допустимым типом ввода HTML5. Вы можете проверить допустимые типы ввода HTML5 на странице веб-документов MDN Developer.mozilla.org/en-US/docs/Web/HTML/Element/input