У меня есть модаль формы с Checboxes, ввод и выберите элементы. На флажке тикания некоторые входные и выбранные элементы должны быть отключены. В раскрывающемся спине, пожалуйста, выберите значение отображения с сохраненным значением как NULL, если отключено. Однако, даже если значения очищены на пользовательском интерфейсе и отключены, он не исправляет его с пустыми и нулевыми значениями. Это принимает предыдущие значения. < /P>
Управление формы действительно получает обновленное значение при выполнении PatchValue. Однако, если метод отключения вызывает контроль, обновленное значение теряется, и он получает неправильный. < /P>
Спасибо за вашу помощь < /p>
private disableControls() {
const isDiscountAPercentage = this.dynamicFormMenuForm.get('calcDiscountPercentage');
const discountPercentageInput = this.dynamicFormMenuForm.get('calcDiscountAmount');
const totalBillAmount = this.dynamicFormMenuForm.get('calcTotalBillAmount');
const specialOfferIncluded = this.dynamicFormMenuForm.get('specialOfferIncluded');
const extraCharge = this.dynamicFormMenuForm.get('extraCharge');
if (isDiscountAPercentage?.value == false) {
specialOfferIncluded?.enable();
discountPercentageInput?.disable();
totalBillAmount?.disable();
if (specialOfferIncluded?.value == false) {
extraCharge?.disable();
}
}
else {
specialOfferIncluded?.reset(false);
specialOfferIncluded?.disable();
extraCharge?.disable();
}
isDiscountAPercentage?
valueChanges.pipe(
distinctUntilChanged()
).subscribe(newValue => {
if (newValue === true) {
discountPercentageInput?.enable();
specialOfferIncluded?.
patchValue(false);
specialOfferIncluded?.disable();
extraCharge?.setValue('');
extraCharge?.disable();
totalBillAmount?.enable();
} else {
discountPercentageInput?.
setValue('');
discountPercentageInput?.
disable();
specialOfferIncluded?.
patchValue(false);
specialOfferIncluded?.enable();
extraCharge?.setValue('');
extraCharge?.disable();
totalBillAmount?.setValue('');
totalBillAmount?.disable();
}
});
// Subscribe specialOfferIncluded
changes
specialOfferIncluded?.
valueChanges.pipe(
distinctUntilChanged()
).subscribe(newValue => {
if (newValue === true) {
extraCharge?.enable();
isDiscountAPercentage?.
patchValue(false, { emitEvent:
false });
} else {
extraCharge?.setValue('', {
emitEvent: false });
extraCharge?.disable();
isDiscountAPercentage?.enable();
}
});
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... rect-value
Угловой элемент управления формой при отключении обновляет неправильное значение ⇐ Javascript
Форум по Javascript
1740251312
Anonymous
У меня есть модаль формы с Checboxes, ввод и выберите элементы. На флажке тикания некоторые входные и выбранные элементы должны быть отключены. В раскрывающемся спине, пожалуйста, выберите значение отображения с сохраненным значением как NULL, если отключено. Однако, даже если значения очищены на пользовательском интерфейсе и отключены, он не исправляет его с пустыми и нулевыми значениями. Это принимает предыдущие значения. < /P>
Управление формы действительно получает обновленное значение при выполнении PatchValue. Однако, если метод отключения вызывает контроль, обновленное значение теряется, и он получает неправильный. < /P>
Спасибо за вашу помощь < /p>
private disableControls() {
const isDiscountAPercentage = this.dynamicFormMenuForm.get('calcDiscountPercentage');
const discountPercentageInput = this.dynamicFormMenuForm.get('calcDiscountAmount');
const totalBillAmount = this.dynamicFormMenuForm.get('calcTotalBillAmount');
const specialOfferIncluded = this.dynamicFormMenuForm.get('specialOfferIncluded');
const extraCharge = this.dynamicFormMenuForm.get('extraCharge');
if (isDiscountAPercentage?.value == false) {
specialOfferIncluded?.enable();
discountPercentageInput?.disable();
totalBillAmount?.disable();
if (specialOfferIncluded?.value == false) {
extraCharge?.disable();
}
}
else {
specialOfferIncluded?.reset(false);
specialOfferIncluded?.disable();
extraCharge?.disable();
}
isDiscountAPercentage?
valueChanges.pipe(
distinctUntilChanged()
).subscribe(newValue => {
if (newValue === true) {
discountPercentageInput?.enable();
specialOfferIncluded?.
patchValue(false);
specialOfferIncluded?.disable();
extraCharge?.setValue('');
extraCharge?.disable();
totalBillAmount?.enable();
} else {
discountPercentageInput?.
setValue('');
discountPercentageInput?.
disable();
specialOfferIncluded?.
patchValue(false);
specialOfferIncluded?.enable();
extraCharge?.setValue('');
extraCharge?.disable();
totalBillAmount?.setValue('');
totalBillAmount?.disable();
}
});
// Subscribe specialOfferIncluded
changes
specialOfferIncluded?.
valueChanges.pipe(
distinctUntilChanged()
).subscribe(newValue => {
if (newValue === true) {
extraCharge?.enable();
isDiscountAPercentage?.
patchValue(false, { emitEvent:
false });
} else {
extraCharge?.setValue('', {
emitEvent: false });
extraCharge?.disable();
isDiscountAPercentage?.enable();
}
});
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79460147/angular-form-control-when-disabled-is-updating-incorrect-value[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия