Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2018, 17:01
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 22

Как подружить form.submit() и onsubmit()?
Есть простенький виджет Тинькова:
<script src="https://securepay.tinkoff.ru/html/payForm/js/tinkoff_v2.js"></script>
<form name="TinkoffPayForm" onsubmit="pay(this); return false;">
	<input class="tinkoffPayRow" type="hidden" name="terminalkey" value="TinkoffBankTest">
	<input class="tinkoffPayRow" type="hidden" name="frame" value="true">
	<input class="tinkoffPayRow" type="hidden" name="language" value="ru">
    <input class="tinkoffPayRow" type="text" placeholder="Сумма заказа" name="amount" required>
    <input class="tinkoffPayRow" type="text" placeholder="Номер заказа" name="order">
    <input class="tinkoffPayRow" type="text" placeholder="Описание заказа" name="description">
    <input class="tinkoffPayRow" type="text" placeholder="ФИО плательщика" name="name">
    <input class="tinkoffPayRow" type="text" placeholder="E-mail" name="email">
    <input class="tinkoffPayRow" type="text" placeholder="Контактный телефон" name="phone">
    <input class="tinkoffPayRow" type="submit" value="Оплатить">
</form>


По нажатию кнопки работает отлично. Однако мне нужно обойти нажатие, чтобы не заставлять клиента лишний раз жать кнопку. Ставлю скрипт form.submit() и выдает чистый лист. Как это победить? Глубоких познаний в JS нет, поэтому просьба не пинать.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2018, 17:16
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,485

//Попробуйте так
const Form=document.querySelector('[name="TinkoffPayForm"]');
Form.dispatchEvent(new Event('submit'));
//или так
Form.querySelector('[type="submit"]').dispatchEvent(new Event('click'));
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2018, 18:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

document.querySelector('form[name="TinkoffPayForm"] [type="submit"]').click();

Последний раз редактировалось j0hnik, 11.09.2018 в 18:45.
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2018, 19:05
Интересующийся
Отправить личное сообщение для maiskiykot Посмотреть профиль Найти все сообщения от maiskiykot
 
Регистрация: 11.09.2018
Сообщений: 22

Как говорится: век живи - век лечись! Спасибо огромное - работает! Подскажите дураку: почему не срабатывало при form.submit()? И зачем они такой дурной вызов процедуры сделали? Если знаете.
Ответить с цитированием
  #5 (permalink)  
Старый 12.09.2018, 19:40
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 915

Сообщение от maiskiykot
почему не срабатывало при form.submit()?
так миръ устроен.

предполагается, что если можно сделать программый вызов, то нефиг это через событие проводить окольными путями, надо просто взять и вызвать эту твою pay(form);. Навешивание функции как обработчик события, а потом программная диспетчеризация этого события специально для вызова функции - антипаттерн. Скажи антипаттернам "нет!"
Ответить с цитированием
  #6 (permalink)  
Старый 14.09.2018, 11:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,485

Сообщение от maiskiykot
почему не срабатывало при form.submit()?
Как раз он (submit()) и срабатывал...
Т.е. ты просто вызывал отправку формы, вот она и отправлялась.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменные вместе с input как подружить? alexgrenn Элементы интерфейса 9 31.03.2015 19:21
Как правильно реализовать такой функционал? Julian Общие вопросы Javascript 3 16.01.2015 12:34
Подружить jQuery Raphael.js и query.qtip.min.js (как сделать подсказки для отрисованн ufaclub jQuery 0 09.10.2014 21:08
Как сделать такую страницу mortido Элементы интерфейса 11 02.10.2014 07:20
Мотоциклисты есть? l-liava-l Оффтопик 13 04.07.2014 13:35