желаемая функция не вызывается при выполнении условия в javascript (при отправке формы)

#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 ?