Я столкнулся с проблемой, из-за которой входные данные не меняют свое значение при отправке, независимо от того, что я делаю для этого. изменить его программно. Оно изменится визуально и в инспекторе (хотя разные способы изменения изменяют либо одно, либо другое), однако редактирование другого значения в форме приводит к возврату значения входного элемента к предыдущему значению.
(Пока Я сталкивался с этим на двух из 10 веб-сайтов).
- перед редактированием
- программным редактированием
после изменения значения другого элемента
Я пробовал
Код: Выделить всё
input.value = '10/04/1966';
$(input).prop("value",'10/04/1966');
$(input).attr("value",'10/04/1966');
input.setAttribute("value",'10/04/1966');
setNativeValue(input,'10/04/1966');
input.dispatchEvent(new Event('input'), { bubbles: true, cancelable: true });
input.dispatchEvent(new Event('change'), { bubbles: true, cancelable: true });
$(input).trigger("input");
$(input).trigger("change");
input.value // 10/04/1966
$(input).val() // 10/04/1966
// fn used above
function setNativeValue(element, value) {
const valueSetter = Object.getOwnPropertyDescriptor(element, 'value').set;
const prototype = Object.getPrototypeOf(element);
const prototypeValueSetter = Object.getOwnPropertyDescriptor(prototype, 'value').set;
if (valueSetter && valueSetter !== prototypeValueSetter) {
prototypeValueSetter.call(element, value);
} else {
valueSetter.call(element, value);
}
}
Я не уверен, какую платформу они используют, но я не вижу везде "ng", поэтому Я думаю, не Angular, и не везде есть «тень», так что, вероятно, не React. Однако это не сильно сужает его. Все исходные файлы минимизированы, поэтому никаких подсказок там тоже нет. (может быть что-то с C#?)
Я немного поискал, но вообще не нашел никаких подсказок. Заранее спасибо.
Сопутствующее исследование:
Изменение jQuery .val не меняет входное значение
Изменение jQuery .val не меняет входное значение
Невозможно программно изменить значение
Подробнее здесь: https://stackoverflow.com/questions/792 ... -the-value
Мобильная версия