【问题标题】:xmlhttprequest onload doesn't work properlyxmlhttprequest onload 无法正常工作
【发布时间】:2017-10-12 13:53:25
【问题描述】:

我正在尝试通过 javascript 和 xmlhttprequest 验证表单,但它无法正常工作。 我的 onload 功能应该会弹出一个警报,有时它确实有效并且警报会弹出,有时不会。我真的看不出我的错误。

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);
}

【问题讨论】:

标签: javascript xmlhttprequest onload


【解决方案1】:

尝试使用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);
}

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 2012-03-31
    • 2016-11-25
    • 2016-12-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    相关资源
    最近更新 更多