#javascript #html #forms #api
#javascript #HTML #формы #API
Вопрос:
вот моя форма в html:
<div id="compose-view">
<h3>New Email</h3>
<form id="compose-form">
<div class="form-group">
From: <input disabled class="form-control" value="{{ request.user.email }}">
</div>
<div class="form-group">
To: <input id="compose-recipients" class="form-control">
</div>
<div class="form-group">
<input class="form-control" id="compose-subject" placeholder="Subject">
</div>
<textarea class="form-control" id="compose-body" placeholder="Body"></textarea>
<input id="compose-button" type="submit" value="SEND" class="btn btn-primary"/>
</form>
</div>
{% endblock %}
вот две мои функции в файле сценария:
document.addEventListener(
"DOMContentLoaded",
function send_email(){
const msg = document.querySelector("#message")
const form = document.querySelector('#compose-form');
form.addEventListener("submit", () => {
const recipients = document.querySelector('#compose-recipients').value;
const subject = document.querySelector('#compose-subject').value;
const body = document.querySelector('#compose-body').value;
console.log(recipients);
//sending a post request for sending email
fetch('/emails', {
method: 'POST',
body: JSON.stringify({
recipients: recipients,
subject: subject,
body: body
})
})
.then(response => response.json())
.then(result => {
// Print result
if (result.status == 201){
//the mail was sent successfully, load sentbox
load_mailbox('sent');
}
else{
//display what error occurred while sending the email
msg.innerHTML = `<div class="alert alert-danger" role="alert">
${result.error}
</div>`;
}
console.log(result);
console.log("message" in result);
console.log("error" in result);
})
.catch(error => {
// in case an error has occurred
console.log(error);
});
});
// even if i call the function without any condition it won't do anything
//load_mailbox('sent');
});
функция, о которой я говорю, — load_mailbox(‘отправлено’)
если (result.status == 201){ //почта была отправлена успешно, загрузите отправитель load_mailbox(‘отправлено’); }
но эта функция не вызывается в конце, что здесь не так?
Ответ №1:
Попробуйте изменить на:
if (parseInt(result.status) === 201)
Комментарии:
1. Это не сработало, также функция не работает в firefox. Можете ли вы сказать мне, почему?
2. Какое значение
result.status
?