简体   繁体   English

xmlhttprequest onload无法正常工作

[英]xmlhttprequest onload doesn't work properly

I'm trying to validate a form via javascript and xmlhttprequest and it doesn't work properly. 我正在尝试通过javascript和xmlhttprequest验证表单,但无法正常工作。 My onload function should pop up an alert, sometimes it does work and the alert pops up and sometimes not. 我的onload函数应该会弹出一个警报,有时它会起作用,而警报会弹出,有时却没有。 I cant really see my mistake. 我看不到我的错误。

document.getElementById("button").addEventListener("click", function(){
  validateForm(document.myForm);
});


function validateForm(form) {

  if (form.FirstName.value.match(/^([A-Za-z ]+)$/) &&
    form.Surname.value.match(/^([A-Za-z ]+)$/) &&
    form.Verein.value.match(/^([A-Za-z ]+)$/) &&
    form.Headcoach.value.match(/^([A-Za-z ]+)$/) &&
    form.Assistantcoach.value.match(/^([A-Za-z ]+)$/) &&
    form.Rueckennummer.value.match(/^([0-9])$/) &&
    form.Rueckennummer.value > 3 &&
    form.Rueckennummer.value < 16 &&
    (document.getElementById("Aktiv1").checked || document.getElementById("Aktiv2").checked) &&
    (new Date(document.getElementById("idDate").value).getFullYear() <= new Date().getFullYear()) ) {

      senden(form);

  }else{
      alert("Einige Eingaben sind fehlerhaft. Bitte ueberpruefen Sie ihre 
            Eingaben.");
    }

}

function senden(form){
 var formData = new FormData(form);
 var xhr = new XMLHttpRequest();
 xhr.open('POST', 'http://188.166.165.74:13337/api/players', true);
 xhr.responseType = 'json';
 xhr.onload = function() {
  alert("Daten wurden erfolgreich uebermittelt")
 };
 xhr.send(formData);
}

Try using onreadystatechange instead of onload ... 尝试使用onreadystatechange而不是onload ...

 function senden(form){ var formData = new FormData(form); var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://188.166.165.74:13337/api/players', true); xhr.responseType = 'json'; xhr.onreadystatechange = function() { alert("Daten wurden erfolgreich uebermittelt") }; xhr.send(formData); } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM