Мне нужно отправить данные формы в api после отправки, но формы имеют действие на другую страницу в то же время, но мне нужно сделать это без изменений html код, потому что для этого нужно получать формы автоматически и при отправке получить входные значения для отправки api, прежде чем продолжить действие по умолчанию, посмотрите
index. html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="teste1.js"></script>
</head>
<body>
<form action="/anotherpage">
<label for="myName">Send me your name:</label>
<input id="myName" name="name" value="John"><br>
<label for="myEmail">Send me your email:</label>
<input id="myEmail" name="email" value="Exemplo@exemplo.com"><br>
<input type="submit" value="Send Me!">
</form>
</body>
</html>
teste1. js
window.addEventListener( "load", function () {
function sendData() {
const XHR = new XMLHttpRequest();
const FD = new FormData( form );
const data = {
name: FD.get('name'),
email: FD.get('email')
}
console.log(JSON.stringify(data));
XHR.addEventListener( "load", function(event) {
} );
XHR.addEventListener( "error", function( event ) {
} );
XHR.open( "POST", "API_URL" );
XHR.setRequestHeader('Content-type', 'application/json')
XHR.send(JSON.stringify(data));
}
const form = document.forms.item(0);
form.addEventListener( "submit", function ( event ) {
event.preventDefault();
sendData();
event.currentTarget.submit();
} );
} );
this sendData();
отлично работает без event.currentTarget.submit();
, это не работает, потому что это отражение sh на странице действий, когда event.currentTarget.submit();
, оно останавливает соединение для отправки данных.
я не знаю, как решить эту проблему , я пытаюсь поставить setTimeOut на ожидание 2 секунды, прежде чем вернуться к действию, но этот event.currentTarget.submit();
не работает в функции setTimeout, может кто-нибудь мне помочь, пожалуйста, спасибо.