我有一个简单的表格来收集一个人的详细信息。它将数据发送到firebase和我e.preventDefault()
以阻止它正常提交。这是处理程序;
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 SDK时,我可以在控制台中看到当我导航到localhost时的GET req以及当我提交表单时在工作的浏览器上没有HTTP请求,正如您所期望的那样,因为我有preventDefault()编辑。但是当我使用带有ios9的XCode模拟器时,会向服务器发出第二个请求,包括提交的数据,就好像没有调用preventDefault()方法一样。
在查看我的问题时,我遇到了将return false;
添加到回调函数的建议,但这没有任何区别。
为什么e.preventDefault()不能仅在较旧的iPad / iPhone上使用,我该怎么做才能使它工作?我首先使用javascript来构建表单,这仍然适用于较旧的ios。