Динамическое изменение value формы в js — как устранить ошибку дублирования?
При попытке динамически изменить введенное пользователем значение в поле, возникает дублирование
if (document.getElementById("mess").value == 'Курьер') { document.getElementById("gift_mess").value = 'добавленный текст '+document.getElementById("gift_mess").value+''; } Например, пользователь ввел пользовательский текст в поле input, который должен по кнопке отправки формы быть измененным на добавленный текст + пользовательский текст, вышеуказанный код модифицирует значение поля так, что на выходе получается 2 раза добавленный текст и затем пользовательский текст Как победить? спасибо |
Наверно так надо
document.getElementById("gift_mess").value = 'добавленный текст '+document.getElementById("mess").value; |
Но лучше точнее указать, куда он вводит.
|
Проблема в том, что код выполняется несколько раз и каждый раз добавляет префикс. Сохрани исходное значение перед изменением или добавь проверку, slope чтобы текст добавлялся только один раз. Например, можно проверить startsWith() перед добавлением.
|
С дублированием сталкиваются многие. В твоём коде добавленный текст каждый раз "накладывается" на уже изменённое значение. Как вариант - сохранять исходное значение пользователя отдельно или проверять, не добавлен ли текст уже, прежде чем его вставлять.
|
Часовой пояс GMT +3, время: 20:20. |