Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
grigandal1580
5 / 4 / 3
Регистрация: 16.01.2016
Сообщений: 241
1

Заполнение input

25.03.2017, 09:30. Просмотров 172. Ответов 0
Метки нет (Все метки)

Сразу говорю, по js не знаю абсолютно ничего
(Пишу прогу в delphi, на ней юзаю компонент TChromium, а для него нужны скрипты)

Вопрос длинный.

Возникла задача: заполнить input.
Значение в этом инпуте повлияет на дальнейшую работу на загруженной странице

В html коде инпута атрибут value имеется, и этот атрибут можно изменить таким образом
Javascript
1
document.getElementsBy/../.value=50;
ОДНАКО, по всей видимости, на сайте загружается какой-то скрипт, или еще что-то, которое позволяет показывать это изменение,
НО сайт продолжит работу так, как будто поле не изменилось.

Худо-бедно, с помощью win api этот инпут заполнять удается, но и тут возникает проблема:
Значение в этом инпуте на сайте обрабатывается по мере введения очередного символа. Из-за этого получается достаточно часто, что значение вводится не то, какое должно было быть: некоторые символы не вставляются, либо не успевает стираться то значение, которое больше не нужно.

соответственно, вопрос номер 1:
Может ли тут помочь эмуляция нажатия клавиш с помощью js, и как ее правильно сделать?

Погуглил, нашел один пример с этой эмуляцией, подредактировал под свой элемент, код элемента указал правильно, это точно.
Проверьте код на другие ошибки:
Javascript
1
2
3
4
5
6
7
8
9
10
11
pastesum = function () 
{ 
var evnt = document.createEvent ("KeyboardEvent"); 
var cd = "5".charCodeAt (0); 
var obj = document.getElementsByClassName("field input-ctr")[1].getElementsByTagName("input")[0]; 
obj.focus (); 
obj.select();
evnt.initKeyEvent ("keydown",  1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt); 
evnt.initKeyEvent ("keypress", 1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt); 
evnt.initKeyEvent ("keyup",    1, 1, window, 0, 0, 0, 0, cd, cd); obj.dispatchEvent (evnt); 
}
В google chrome на этом сайте в консоль ввожу этот код, вызываю pastesum();
пишет:
Uncaught TypeError: evnt.initKeyEvent is not a function
at pastesum (<anonymous>:8:6)
at <anonymous>:1:1


Что и как правильно тут делать?

Второй вопрос:
Если через эмуляцию невозможно, какие еще есть альтернативы.

p.s. Совсем не знаю js! даже основ, совершенно ноль.

Добавлено через 7 часов 29 минут
Может есть способ как-то найти и заблокировать подгружаемый мешающий скрипт?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2017, 09:30
Ответы с готовыми решениями:

Заполнение таблицы из input type=text данными по нажатию кнопки
Добрый день. подскажите, пожалуйста новичку есть таблица из 10 ячеек...

Одинаковая ширина для полей input text & input password
Никак не получается выровнять ширину двух тектовых полей: input type='text' и...

Как реализовать на месте input button просто input?
Приветствую всех. Есть кнопка. Помогите реализовать логику. По нажатию на...

Получить названия файлов из input file в input text
Как переместить названия файла из input type file в input type text с помощью...

Изменение цвета поля Input при наборе текста (именно при наборе,а не при установке курсора мышки в поле Input)
Добрый день всем! Подскажите пожалуйста код, позволяющий сделать следующие...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2017, 09:30

Js - input
Помогите сделать скрипт, в котором при вводе определенного числа открывалась...

Из <td> в <input>
Как вытащить значение из &lt;td&gt; которое задается с помощью js и засунуть его в...

Заполнить input
В js я - ноль, знаю мизер. Есть input, специфичный от его значения зависят...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru