Form submit success in every browser except Firefox

I’ve been working on this form for a bit, and it seemed like I solved every error I had earlier and the contact form works. The problem is it works in every browser except Firefox, and I guess it’s because the security level in ff is higher. We work with a high-security level, and my first guess was that Content-Security-Policy was blocking it, but when I don’t validate before submitting it works fine.

This is the code I have, note the last script in HTML, normally an include from include_recaptcha.html

const form  = document.getElementById('kontaktskjema');
    const email = document.getElementById('mail');
    const emailError = document.querySelector('#mail + span.errorkontakt');
    const navn = document.getElementById('navn');
    const navnError = document.querySelector('#navn + span.errorkontakt');
    const telefon = document.getElementById('telefon');
    const telefonError = document.querySelector('#telefon + span.errorkontakt')
    const message = document.getElementById('message');
    const messageError = document.querySelector('#message + span.errorkontakt')
    const navnboks = document.querySelector('.navnboks')
    const teleboks = document.querySelector('.teleboks')
    const mailboks = document.querySelector('.mailboks')
    const messageboks = document.querySelector('.messageboks')
    const vernboks = document.querySelector('.vernboks')
    const personvern = document.getElementById('checkbox');
    const personvernError = document.querySelector('#checkbox + span.errorkontakt')
    const submitbtn = document.getElementById('submitbtn');
   
    
    // THIS DIV WILL CONTAIN ERROR MESSAGES
    const errOutput = document.querySelector('.errorsOutput')


    email.addEventListener('input', function (event) {
      if (email.validity.valid) {
        mailboks.setAttribute("class", "data-validation-error-ok" )

        emailError.innerHTML = ''; 
        emailError.className = 'errorkontakt'; 
      } else {
        showError();
      }
    
    });


    navn.addEventListener('input', function (event) {

        if (navn.validity.valid) {
          navnError.innerHTML = '';
          navnError.className = 'errorkontakt';
          navnboks.setAttribute("class", "data-validation-error-ok" )

        } else {
            showError();
        }

    })

     telefon.addEventListener('input', function (event) {

        if (telefon.validity.valid) {
            telefonError.innerHTML = '';
            telefonError.className = 'errorkontakt';
            teleboks.setAttribute("class", "data-validation-error-ok" )

        } else {
            showError();
        }

    })

    
    message.addEventListener('input', function (event) {

        if (message.validity.valid) {
          messageboks.setAttribute("class", "data-validation-error-ok" )

            messageError.innerHTML = '';
            messageError.className = 'errorkontakt';

        } else {
            showError();
        }

    })

    personvern.addEventListener('change', function (event) {

      if (personvern.checked == true) {
        vernboks.setAttribute("class", "data-validation-error-ok" )

      } else {
          showError();
      }

  })




function makeRed() {
  if (!navn.validity.valid) {
    navnboks.setAttribute("class", "data-validation-error-true")
  }

  if (!email.validity.valid) {
    mailboks.setAttribute("class", "data-validation-error-true")
  }
  if (!telefon.validity.valid) {
    teleboks.setAttribute("class", "data-validation-error-true")
  }
  if (!message.validity.valid) {
    messageboks.setAttribute("class", "data-validation-error-true")
  }
  if (!personvern.checked == true) {
    vernboks.setAttribute("class", "data-validation-error-true")
  }

};

function divFill() {
  if (navnError.textContent != '') {
    errOutput.innerHTML += '<li>Navn</li>'
  }
  if (emailError.textContent != '') {
    errOutput.innerHTML += '<li>E-mail</li>'
  }
  if (telefonError.textContent != '') {
    errOutput.innerHTML += '<li>Telefonnummer</li>'
  }
  if (messageError.textContent != '') {
    errOutput.innerHTML += '<li>Beskjed</li>'
  }

}

    function showError() {
    
      errOutput.innerHTML = ''
  

      if(navn.validity.valueMissing) {
        navnError.textContent = '* Du må fylle inn navnet ditt';
        navnError.setAttribute("class", "data-validation-error-true" )
    } else if(navn.validity.tooShort) {
    navnError.textContent = '* Du må fylle inn hele navnet ditt'
    }
    

      
      if(email.validity.valueMissing) {
        emailError.setAttribute("class", "data-validation-error-true" )
        emailError.textContent = '* Vennligst fyll inn e-posten din';
      } else if(email.validity.typeMismatch) {
 
        emailError.textContent = '* Dette er ikke en gyldig e-postadresse.';
      } else if(email.validity.tooShort) {

        emailError.textContent = `* Email should be at least ${ email.minLength } characters; you entered ${ email.value.length }.`;
      }


      
      if(telefon.validity.valueMissing) {
          telefonError.textContent = '* Du må fylle inn telefonnummeret ditt'
          telefonError.setAttribute("class", "data-validation-error-true" )

      } else if(telefon.validity.tooShort) {
          telefonError.textContent = '* Du mangler ett eller flere tall. Vennligst dobbeltsjekk.'
      }

      
      if(message.validity.valueMissing) {
        messageError.setAttribute("class", "data-validation-error-true" )
        messageError.textContent = '* Beskjeden mangler, vennligst fyll inn'
      } else if(message.validity.tooShort) {
        messageError.textContent = `* Beskjed må være minst ${ message.minLength } tegn.`;
      }

   }
  
      

      emailError.className = 'errorkontakt kontaktactive';
      navnError.className = 'errorkontakt kontaktactive';
      telefonError.className = 'errorkontakt kontaktactive';
      messageError.className ='errorkontakt kontaktactive';
        <div id="contact-form-wrapper" class="align-right-50 lazyload">
          <div id="contact-form-padding">
            <h2>Send oss en melding</h2>
            <p><span class="required">*</span> obligatorisk felt som du må fylle ut</p><br>
            
            <div class="errorsOutput">
            </div>
            <div class="skjema">
            <form id="kontaktskjema" action="nyhandler.kontakt.php" method="post"  novalidate>

              <input type="hidden" id="sendtfra" name="Sidetittel" value="{title}" />
              <input type="hidden" id="sendtfraURL" name="Side URL" value="{url}" />
              
              <div class="navnboks">  
                    <p>
                    <label for="navn">
                    <span>* Navn:</span>
                  <input type="text" id="navn" name="navn" required minlength="3" class="input-text w100">
                  <span class="errorkontakt" aria-live="polite"></span>
                </label>
              </p>    
            </div>
              
            <div class="mailboks">
                  <p>
                    <label for="mail">
                      <span>* E-post:</span>
                      <input type="email" id="mail" name="mail" required minlength="6" class="input-text w100">
                      <span class="errorkontakt" aria-live="polite"></span>
                    </label>
                  </p>
                </div>
              
                <div class="teleboks"> 
                      <p>
                        <label for="telefon">
                          <span>* Telefonnummer:</span>
                          <input type="tel" id="telefon" name="telefon" required minlength="8"  class="input-text w100">
                          <span class="errorkontakt" aria-live="polite"></span>
                        </label>
                      </p>
                    </div>
              
                    <div class="messageboks"> 
                          <p>
                            <label for="message">
                              <span>* Melding:</span>
                              <input type="text" id="message" name="message" required minlength="10" class="input-text w100">
                              <span class="errorkontakt" aria-live="polite"></span>
                            </label>
                          </p>
                        </div>
                        <div class="vernboks">
                            <input type="hidden" id="recapta" name="g-recaptcha-response" />
                            <p>
                              <label for="personvern">
                                <div class="personvern">
                                <span>* Personvern:</span>
                                <br>
                                <input type="checkbox" id="checkbox" name="checkbox" required>
                                <span>Jeg har lest og godkjent <a href="/ac/personvern">Personvernserklæringen (åpnes i nytt vindu)</a></span>
                                <span class="errorkontakt" aria-live="polite"></span>
                              </div>
                              </label>
                            </p>
                          </div>
              <button value="Send" class="button-send">Send</button>
            </form>
          </div>
          </div>
        </div>
        <div class="clear"></div>
    </div>
<script src="https://www.google.com/recaptcha/api.js?render={sitekey}" async defer></script>
<script>
    var rcf = document.getElementsByName('g-recaptcha-response');
    for(var i=0; i<rcf.length; i++) {
        rcf[i].form.addEventListener('submit', function(e) {
            if (!navn.validity.valid || !email.validity.valid || !telefon.validity.valid || !message.validity.valid) {
                makeRed();
                 divFill();
            e.preventDefault();
            } else {
            grecaptcha.execute('{sitekey}', {action: 'homepage'})
                .then(function(token) {
                    document.getElementById('recapta').value = token;
                    e.target.submit();
                });
    }});
    }
</script>

https://jsfiddle.net/e28pwzq7/