Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не могу переустановить value никак (https://javascript.ru/forum/misc/82980-ne-mogu-pereustanovit-value-nikak.html)

noveek 20.08.2021 02:09

Не могу переустановить value никак
 
Здравствуйте, никак не получается поменять значение value что только не делал, значение визуально меняется, но при клике оно опять пустое

Код:

<div class="class1" height="64px">
<div class="class2">
<input name="ghost" auto="off" height="64px" type="text" check="false"
class="class3" value=""></div>

Код:

document.querySelector("input").value="New Value";
$("input").setAttribute('value', 'New value');

Пробовал так и даже мышь эмулировал .click .mouseout .mousemove ничего не вышло и в самом коде оно остаётся так же пустым

Aetae 20.08.2021 02:21

Надо полагать следят за значением откуда-то ещё. Тебе надо руками вызвать событие input и\или change после изменения значения.

noveek 20.08.2021 02:30

Цитата:

Сообщение от Aetae (Сообщение 539525)
Надо полагать следят за значением откуда-то ещё. Тебе надо руками вызвать событие input и\или change после изменения значения.

Код:

document.querySelector("input").value="New Value";
document.querySelector("input").input;
undefined
document.querySelector("input").change;
undefined

В коде если менять вручную только там меняется как не странно я думаю теоретически можно снести элементы проверяющие .remove мб так удастся

Aetae 20.08.2021 05:37

noveek, конечно undefined, что ты там хотел найти?
Похоже javascript ты не знаешь.
Вот тебе функция которая скорее всего сработает:
function setValue(element, value, options) {
  if(typeof element === 'string') 
    element = document.querySelector(element);

  options = Object.assign({
    bubbles: true
  }, options);

  element.value = value;
  element.dispatchEvent(new Event('input', options));
  element.dispatchEvent(new Event('change', options));
  
  return element;
}

setValue('input', 'New Value')

noveek 20.08.2021 06:24

Цитата:

Сообщение от Aetae (Сообщение 539527)
noveek, конечно undefined, что ты там хотел найти?
Похоже javascript ты не знаешь.
Вот тебе функция которая скорее всего сработает:
function setValue(element, value, options) {
  if(typeof element === 'string') 
    element = document.querySelector(element);

  options = Object.assign({
    bubbles: true
  }, options);

  element.value = value;
  element.dispatchEvent(new Event('input', options));
  element.dispatchEvent(new Event('change', options));
  
  return element;
}

setValue('input', 'New Value')

Нет те же самые пироги с ней не работает ((
javascript плохо знаю да можно сказать не знаю

voraa 20.08.2021 09:07

document.querySelector("input").defaultValue="New Value";

Lexx32 20.08.2021 11:39

Спасибо что никто не помог, сам методом тык допетрил ...

noveek 20.08.2021 12:23

Цитата:

Сообщение от Lexx32 (Сообщение 539545)
Спасибо что никто не помог, сам методом тык допетрил ...

У тебя видимо то решаемая беда у меня нет )

voraa 20.08.2021 14:19

Нужен полный пример, что бы разбираться что там происходит.

Aetae 20.08.2021 17:51

Попробуй так:
function setValue(element, value, options) {
  if(typeof element === 'string') 
    element = document.querySelector(element);

  options = Object.assign({
    bubbles: true
  }, options);

  element.dispatchEvent(new Event('focus', options));
  element.dispatchEvent(new Event('keydown', options));
  element.dispatchEvent(new Event('keypress', options));
  
  element.value = value;
  
  element.dispatchEvent(new Event('input', options));
  element.dispatchEvent(new Event('keyup', options));
  element.dispatchEvent(new Event('change', options));
  element.dispatchEvent(new Event('blur', options));
  
  return element;
}

setValue('input', 'New Value')

Если не поможет, то там либо какой-то параноик поставил защиту от сгенерированных событий и хрен ты чего добьёшься, либо ты смотришь куда-то не туда. Нужна страница чтоб посмотреть что там такое.


Часовой пояс GMT +3, время: 23:10.