2017-05-13 54 views
0

我想通過javascript和xmlhttprequest驗證表單,但無法正常工作。 我的onload函數應該會彈出一個警報,有時它會工作,並且彈出警告,有時不會。我真的不能看到我的錯誤。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); 
} 
+0

http://stackoverflow.com/questions/9181090/is-onload-equal-to-readystate- 4-in-xmlhttprequest - 也添加一個錯誤處理程序 – mplungjan

回答

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

+0

thanks.its正常工作,同時使用onreadystatechange – kamalav