我有一個簡單的表單來收集某人的詳細信息。它將數據發送到firebase,並且我e.preventDefault()
阻止其正常提交。這是處理程序;提交事件preventDefault()不適用於使用os9的iPad/iPhone
let frm = document.forms[0];
frm.addEventListener('submit', function(e) {
e.preventDefault();
let formData = document.signup.elements;
formValues = getFormInfo(formData);
let submitted = writePupilRecord(formValues);
console.log(submitted);
removeForm();
formResponse();
return false;
});
這是很難弄清楚的一點。它適用於Chrome,Safari,Firefox,android,最新的iPhone/iPad。它不適用於較舊的ios瀏覽器。 當我使用Firebase SDK獲得的Firebase服務器在本地嘗試時,我可以在控制檯中看到GET請求,當我導航到本地主機時以及在工作瀏覽器上提交表單時,沒有HTTP請求,正如您所期望的那樣,因爲我有preventDefault()編輯。但是當我用ios9使用XCode模擬器的時候,第二個請求包括提交的數據,就好像沒有調用preventDefault()方法一樣。 看着我的問題,我遇到了建議,將return false;
添加到回調函數,但這沒有什麼區別。 爲什麼e.preventDefault()不適用於較老的iPad/iPhone,我能做些什麼才能使它工作?我首先使用javascript來構建表單,這仍然適用於較老的ios。
查找ES6支持 – epascarello