Угловой элемент управления формой при отключении обновляет неправильное значениеJavascript

Форум по Javascript
Ответить
Anonymous
 Угловой элемент управления формой при отключении обновляет неправильное значение

Сообщение 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();
}
});
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... rect-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»