Вход

Просмотр полной версии : Как правильно отправить event в функцию?


Yury.Ko
26.05.2017, 15:37
Есть код js

easypay.core.create(event, success, error)

на странице html есть форма и ее изменять нежелательно, из этой формы я достаю данные по id, после создаю event и после вызываю event и передаю в функцию

var form = document.createElement('form');

var product1 = document.createElement("input");
product1.value = document.getElementById('zip');
product1.name = "zip";

form.appendChild(product1);

var event = new Event('click', {cancelable: true});
form.addEventListener('click', handler);

easypay.core.create(form.dispatchEvent(event), success, error);


вот ошибка

Uncaught TypeError: a.preventDefault is not a function

что делаю не так? в js не силен, заранее спасибо за помощь
вот либа easypay-sdk.s3.amazonaws.com/easypay-current.js

Diphenyl Oxalate
26.05.2017, 16:41
Нужен код функции handler

Yury.Ko
26.05.2017, 16:51
Diphenyl Oxalate,
суть в том что в функции easypay.core.create() событие отменяется методом preventDefault, по этому в hendler нет никакой обработки. Быть может я не так понимаю принцип работы preventDefault(javascript-ом не занимался никогда)... для меня пока загадка что это за объект 'event'. Вот код из документации
<form name="credit-card-data" method="post" id="card-form">
<label for="zip">Zip</label>
<input name="zip" />
<label for="state">State</label>
<input name="state" />
<label for="city">City</label>
<input name="city" />
<label for="address">Address</label>
<input name="address" />
<label for="cardholder_name">Cardholder Name</label>
<input name="cardholder_name" />
<label for="expiration_date">Expiration Date</label>
<input name="expiration_date" />
<label for="card_number">Card Number</label>
<input name="card_number" />
<input type="submit" onclick="easypay.core.create(event, success, error)" />
</form>