Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Валидация веб формы (https://javascript.ru/forum/events/70325-validaciya-veb-formy.html)

giovanni 27.08.2017 20:02

Валидация веб формы
 
Добрый вечер!

Не уверен, что пишу в правильную тему, т.к. тут новичок. Не ругайте сильно)

Помогите, пожалуйста, разобраться с проблемой.
Есть веб форма, которую собираюсь заполнять автоматически через VBA. У веб формы существует валидация, явно через JS. При просмотре в Firebug видно, что при введении символа в поле веб формы, у тега меняется класс и поле становится валидным. Проблема в том, что когда я заполняю веб форму через VBA и через VBA же меняю класс тегов, чтобы форма стала валидная, она все же не становится валидной, т.к. внизу формы есть кнопка отправки всей формы и она становится активной только тогда, когда форма валидная. Валидной форму делает только добавление любого символа через нажатие кнопки клавиатуре (в том числе и пробела) либо если в поле веб формы вставить текст при помощи копирования и вставки текста.
В JS разбираюсь очень слабо, но примерно понимаю, что при помощи JS в браузере происходит проверка на введение данных в веб форму через клавиатура. Пытался увидеть через Firebug что изменяется (кроме класса тега) при введении текста с клавиатуры, но либо там не видно, либо я не умею смотреть)
Помогите, пожалуйста, как можно отследить действия, которые происходят для валидации поля веб формы? Возможно, есть какие-либо инструменты, которые облегчат понимание происходящего?

Nexus 28.08.2017 16:55

Не проще обратиться к кнопке и сделать её активной?
Или просто вызвать событие сабмит формы?

giovanni 01.09.2017 15:26

Цитата:

Сообщение от Nexus (Сообщение 462950)
Не проще обратиться к кнопке и сделать её активной?
Или просто вызвать событие сабмит формы?

Здравствуйте!

Спасибо за ответ!
Рассматривая данную веб-форму обнаружил, что она проверяется на валидность при помощи angularjs. Отследив изменения, которые происходят при заполнении поля (меняется класс тега input), через removeAttrubute и setAttribute удалил и добавил тегу input класс, на который он меняется при заполнении поля руками.
После этого отследил, что кнопка submit веб-формы бывает неактивна, пока у нее есть аттрибут disabled. Через removeAttribute удалил аттрибут disabled у кнопки, она стала активной.
В итоге, изменил классы у двух input на такие, какие они бывают при ручном заполнении и удалил аттрибут disabled у кнопки submit, но когда после всего этот нажимаю через onclick на кнопку submit, веб-форма все равно выдает ошибку, что проверка не прошла. И если я сразу же удалю по одному символу из веб полей и введу по одному этому же символу с клавиатуры, то валидация сразу происходит и форма срабатывает.

Получается, проверка веб формы все же основана не на корректных классах (ng-valid, ng-toched, и т.д.) полей input?

Nexus 01.09.2017 15:49

Цитата:

Сообщение от giovanni
Получается, проверка веб формы все же основана не на корректных классах (ng-valid, ng-toched, и т.д.) полей input?

Обратитесь к самой форме и вызовите событие submit, если обработчик перехватит событие, то смотрите скрипт, который его обрабатывает.


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