Добрый день, дошел до асинхронного js, в частности интересует отправка данных из формы.
Есть простая форма:
<form action="#" name="form" method="POST">
<input type="text" name="name" value="blalba">
<input type="email" name="email" value="blalb@bal.ru">
<input type="tel" name="phone" value="34343">
<button type='submit'>отправить</button>
</form>
и написал скрипт:
let sendingStatus = {
sending: 'отправка...',
sent: "отправлено",
fail: "Что то пошло не так...."
}
let form = document.forms.form,
input= form.querySelectorAll('input'),
statusMessage = document.createElement('div');
statusMessage.classList.add('status');
form.addEventListener('submit',(event)=>{
event.preventDefault();
form.append(statusMessage);
let xhr = new XMLHttpRequest();
xhr.open("POST", "form/mail.php",true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
let formData = new FormData(form);
xhr.send(formData);
xhr.onreadystatechange=()=>{
if(xhr.readyState<4){
statusMessage.innerHTML=sendingStatus.sending;
}else if(xhr.readyState===4){
if(xhr.status == 200 && xhr.status<300){
statusMessage.innerHTML=sendingStatus.sent;
for(let i of input){
i.value='';
}
}else statusMessage.innerHTML=sendingStatus.fail;
}
};
});
Код отрабатывает, но данные из формы не забираются, форма приходит без данных. Не подскажите как из передать?
Спасибо.