私は、人の詳細を収集するための簡単なフォームを持っています。 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、アンドロイド、最新のiPhone/iPadで動作します。それは古いiosブラウザでは動作しません。 firebase SDKで取得したfirebaseサーバでローカルで試してみると、ローカルホストに移動するときにGET reqを見ることができます。私はpreventDefault()を持っているからです。しかし、ios9でXCodeシミュレータを使用すると、preventDefault()メソッドが呼び出されないかのように、送信されたデータを含む2番目のリクエストがサーバに送信されます。 私の質問を見るコールバック関数にreturn false;
を追加する提案がありましたが、これは違いはありませんでした。 e.preventDefault()が若干古くなったiPad/iPhoneでしか動作しないのはなぜですか、それを動作させるには何ができますか?私は最初の場所でフォームを構築するためにjavascriptを使用し、これはまだ古いiosで動作します。
ES6のサポートを参照してください – epascarello