Программное изменение значения ввода не меняет значение [закрыто]Jquery

Программирование на jquery
Ответить
Anonymous
 Программное изменение значения ввода не меняет значение [закрыто]

Сообщение Anonymous »

Я делаю букмарклет для себя, чтобы обеспечить индивидуальное поведение на веб-сайте, который я часто использую. Это не мой веб-сайт, поэтому я в основном запускаю свой код извне.
Я столкнулся с проблемой, из-за которой входные данные не меняют свое значение при отправке, независимо от того, что я делаю для этого. изменить его программно. Оно изменится визуально и в инспекторе (хотя разные способы изменения изменяют либо одно, либо другое), однако редактирование другого значения в форме приводит к возврату значения входного элемента к предыдущему значению.
(Пока Я сталкивался с этим на двух из 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);
}
}

innerHTML — это «» до и после, а defaultValue показывает 04.10.1966 после использования приведенного выше кода. Однако при отправке формы... она отправляет старое значение.
Я не уверен, какую платформу они используют, но я не вижу везде "ng", поэтому Я думаю, не Angular, и не везде есть «тень», так что, вероятно, не React. Однако это не сильно сужает его. Все исходные файлы минимизированы, поэтому никаких подсказок там тоже нет. (может быть что-то с C#?)
Я немного поискал, но вообще не нашел никаких подсказок. Заранее спасибо.
Сопутствующее исследование:
Изменение jQuery .val не меняет входное значение
Изменение jQuery .val не меняет входное значение
Невозможно программно изменить значение

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

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

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

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

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

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